| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  17-03-2010, 17:21 | #1 | 
| 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 | 
|   |   | 
|  17-03-2010, 20:29 | #2 | |
| Senior Member Iscritto dal: Feb 2010 
					Messaggi: 466
				 | Quote: 
 
				__________________ I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati. | |
|   |   | 
|  18-03-2010, 11:43 | #3 | |
| Member Iscritto dal: Dec 2007 
					Messaggi: 284
				 | Quote: 
 Immagino tu stia facendo il progetto di SO & lab  Anche io ho lo stesso problema: pt è stato allocato con malloc, quindi dovrei deallocare con free ogni suo membro e poi il puntatore pt. La cosa funziona con ad esempio il puntatore all'elemento testa, ma non con quelli a funzione Ultima modifica di lefantome : 18-03-2010 alle 11:52. | |
|   |   | 
|  18-03-2010, 12:33 | #4 | 
| Member Iscritto dal: Aug 2009 
					Messaggi: 119
				 | 
		Si infatti, ero io che nn stavo piu' capendo nulla ormai! Basta semplicemente assegnargli null e poi deallocare il puntatore della struttura... Grazie a tutti cmq.  @lefantome si, sto' facendo quel progetto... | 
|   |   | 
|  18-03-2010, 12:38 | #5 | 
| Member Iscritto dal: Dec 2007 
					Messaggi: 284
				 | 
		
Il primo test mi funziona ma ci sono dei memory leaks mi pare. PEr essere corretto valgrind deve dare 0 bit utilizzati in uscita?
		 | 
|   |   | 
|  18-03-2010, 12:39 | #6 | 
| Member Iscritto dal: Aug 2009 
					Messaggi: 119
				 | 
		non lo so... ancora nn l'ho usato...
		 | 
|   |   | 
|  18-03-2010, 12:56 | #7 | 
| Member Iscritto dal: Dec 2007 
					Messaggi: 284
				 | 
		
primo test superato! casomai tu non te ne fossi accorto: quando nella add_Element controlli se l'elemento è già presente, in caso positivo prima di ritornare -1 ricordati di deallocare il nuovo elemento nel caso in cui tu l'abbia allocato prima e ora mi dedico alla hash | 
|   |   | 
|  19-03-2010, 11:20 | #8 | 
| Member Iscritto dal: Aug 2009 
					Messaggi: 119
				 | 
		anche io ho superato il primo test! Grazie per il consiglio, cmq facevo gia' la find dell'elemento prima della malloc, quindi il prob nn ce l'avevo. Ci si sente in caso di altri prob! Ciao!!!
		 | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 15:03.









 
		 
		 
		 
		







 
  
 



 
                        
                        










