C/Visual C - Problema con puntero

 
Vista:

Problema con puntero

Publicado por Victor (1 intervención) el 13/01/2012 01:17:47
Hola.
Tengo un problema con una función y que también es un puntero ---> que lo he llamado norma.
norma está definida en otro archivo, pero eso no importa.

El programa sería algo así:
-------------------------------------------

void hola(double (*norma)())

int regla;

regla=norma(x,y);
----------------------------------------------

El caso es que los valores de la función norma se guardarán en el entero regla.
El problema es que luego no se devolver de nuevo ese valor regla a la función norma. He probado con esto como hacía con los punteros pero esta vez no me deja:

*norma=regla;

¿Como se podría hacer?
Un saludo y Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con puntero

Publicado por Capitan Kirk (97 intervenciones) el 17/01/2012 10:55:39
Tal como lo has puesto, el parámetro de la función hola es un puntero a una función que devuelve un double. Su empleo correcto sería:

regla = (int)(*norma)(x,y);

en donde:

norma es un puntero a la función (en C, el simple nombre de una función es un puntero a ella).

*norma es la función.

(*norma)(x,y) es la llamada a la función.

(int) es un cast para forzar a que el valor devuelto te lo pase a tipo int. La conversión es automática, pero hay compiladores que dan warnings en estos casos, y es una forma de indicar al compilador que "ya sé que son de tipos distintos, pero sé lo que hago".

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar