Suma de dos enteros

Para dar las gracias debes entrar o registrarte en el foro

iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
24 Ago 2014, 03:09# 1

Buenas noches a todos.

Me surge un problema a la hora de realizar una serie de operaciones con enteros, son muy sencilla, tales como una suma, pero no encuentro el problema y seguramente sea una tontería. Os cuento.

Tengo mi fichero "Datos.h" con dos variables.

Código: Seleccionar todo
@property int *a;
@property int *b;


y en mi fichero "Datos.m" los métodos que van a calcular cosas

Código: Seleccionar todo
-(int)CalcularSuma:
{
    int iSuma = self.a + self.b;
   
    return iSuma;
}


Esto me genera el siguiente error:
"Invalid operands to binary expression (int * and int *)".

Seguramente es una tontería pero no logro dar con la tecla de lo que sucede. A ver si alguien me puede explicar que estoy haciendo mal.

Muchas gracias.
Gracias  
Etiquetado en:
iMiembro 7G
iMiembro 7G
Mensajes: 302 Agradecido: 80
25 Ago 2014, 01:08# 2

El fallo es que estás declarando las propiedades como punteros, por lo que lo que estás intentando sumar no son los valores en si, sino las direcciones de memoria de las propiedades.
Quítales el * y verás cómo te funciona. Quedarían así en Datos.h:

Código: Seleccionar todo
@property int a;
@property int b;


Si lo que quieres es dejar las propiedades como punteros (aunque no le veo sentido), reemplaza tu método por:
Código: Seleccionar todo
-(int)CalcularSuma:
{
    int iSuma = *self.a + *self.b;
   
    return iSuma;
}


Lo segundo no sé si funcionará, no lo he probado.

Enviado desde mi LG-V500 mediante Tapatalk
Gracias  
iMiembro
iMiembro
Mensajes: 12 Agradecido: 0
25 Ago 2014, 01:44# 3

Muchas gracias por la contestación.

Ya me di cuenta de que era por eso, así que cambie los declare sin el *.

Muchas gracias por todo.

Gracias  

Publicidad
Publicidad