|
[c] deallocare puntatori a funzione
Salve a tutti, per caso, qualcuno di voi sa' quale sia la sintassi per deallocare dei puntatori a funzione??? In pratica devo deallocare una struttura che ha al suo interno il puntatore alla testa di una lista e 3 puntatori a funzione. Quando voglio deallocare questa struttura per prima cosa dealloco tutti gli elementi della lista, poi dovrei deallocare i puntatori a funzione (per lo meno credo). Il fatto e' che nn ho idea di come si faccia!
Se ho una struttura dichiarata come
typedef struct {
elem *head;
...
int (* compare) (void *, void *);
...
} lista_t;
quando poi avro' una cosa del genere
list_t **pt;
allocato e vorro' deallocarlo nn ho idea di come si possa fare!
Ho scritto una cosa di questo tipo:
free((*pt)->compare);
ma mi da' uno warning: ISO C forbids passing argument 1 of ‘free’ between function pointer and ‘void *’, e quando eseguo da' un errore di memoria, come invalid pointer.
Se qualcuno riuscisse a darmi una mano gli sarei estremamente grato
|