Curset de C avancat: Crida un punter a funció

Hola, bocho, una pregunta sobre la practica del pringuis department. Como podemos llamar a una funcion que esta como puntero a funcion dentro de una estructura?

Grasias por responder.


Dena, mister.

En cuanto a como llamar a una funcion que esta dentro de una estructura la verdad es que no tengo ni idea... No, es broma... Ahora te lo xpliko:

Supongo que tendras un puntero a una estructura que tiene un campo que es un puntero a funcion. Quelkom enaxi:

typedef struct TLLISTAGEN {
    ...
    void esborra (void *);
    ...
    } tllistagen;
tllistagen *l;

Compte!! Te he colocado el ejemplo en la practica, pero igual estoy metiendo la pata con esta definicion.

Bueno, por pasos, la cosa va de que tienes un puntero a una estructura.

l;

Ahora quieres pillar la estructura a la que apunta:

*l;

Dexta estructura quieres coger el elemento que es puntero a funcion:

(*l).esborra;

o lo que es equivalente:

l->esborra;

Pero esto no llama la funcion sino que da el valor del puntero; utilicemos el operador de llamada ():

l->esborra (yoquese);

Donde yoquese es un void * segun la definicion de arriba i que ya sabras tu como lo obtienes i pa ke kieres borrarlo.

Espero que os haya resuelto la duda. Si no es asi o me xpliko tan mal que os han salido otras, xtoi a buestra disposizion.

Vokimon (is04069)