View Single Post
Old 17-03-2010, 17:21   #1
agosteeno
Member
 
Iscritto dal: Aug 2009
Messaggi: 119
[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
agosteeno č offline   Rispondi citando il messaggio o parte di esso