ciao ragazzi una domanda per deallocare correttamente tutta la memoria di un puntatore a una variabile graph_t devo fare le seguenti deallocazioni?codice:4. /** elemento lista di adiacenza */ 5. typedef struct edge { 6. /** etichetta nodo adiacente (indice nell'array) */ 7. unsigned int label; 8. /** peso dell'arco (distanza in km) */ 9. double km; 10. /** prossima adiacenza*/ 11. struct edge * next; 12. } edge_t; 13. 14. /** lunghezza massima label -- in caratteri */ 15. #define LLABEL 128 16. /** lunghezza massima distanza in km -- in caratteri */ 17. #define LKM 32 18. 19. /** nodo del grafo */ 20. typedef struct node { 21. /** etichetta informativa (nome citta) */ 22. char* label; 23. /** lista di adiacenza */ 24. edge_t * adj; 25. } node_t; 26. 27. /** Grafo non-orientato rappresentato come array 0 .. (N-1) di vertici 28. */ 29. typedef struct graph { 30. /** array dei nodi */ 31. node_t * node; 32. /** numero nodi */ 33. unsigned int size; 34. } graph_t; 35. 36. 37.
-per ogni suo nodo:
deallocare lo spazio occupato dalla sua label
deallocare ogni elemento della lista di adiacenza di quel nodo
infine deallocare il puntatore di ogni nodo e la deallocazione del puntatore alla variabile graph_t,
sbaglio qualcosa o dimentico qualcosa? e' possibile evitare tutte queste deallocazioni ?
grazie in anticipo e scusate il disturbo