int suma(int a, int b, int *resultado) // el * significa q esperamos una direccion de memoria
{
*resultado=a+b; //almacenamos la suma en la variable a la q apunta el puntero
return 0; //devolvemos 0 para indicar que la operacion salio bien
}
int main()
{
int a,b, resultado;
suma(a,b,&resultado); //notese el & antes de resultado, eso indica direccion
printf("la suma es: %d",resultado);
return 0; //salimos sin errores
}
De esta manera no se pierde el resultado al terminar la funcion, ya que se destruye el puntero *resultado, pero no la variable a la q apuntaba, entonces el resultado queda almacenado en dicha variable.int resultado;
int suma(int a, int b) //no hace falta pasarle resultado ya q es global
{
resultado=a+b;
return 0; //devolvemos 0 para indicar que la operacion salio bien
}
int main()
{
int a,b;
suma(a,b);
printf("la suma es: %d",resultado);
return 0; //salimos sin errores
}