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)