ti sbagli...
con una malloc/calloc, allochi l'array di puntatori a char di dimensione N+1.
Poi, dentro un ciclo for, allochi altri N array di char (le stringhe), mentre l'N+1-esimo elemento lo setti a 0 (quindi rimane allocato l'elemento, ma non punta a nessuna stringa).
quando deallochi, prima elimini le N stringhe, poi elimini l'array di N+1 puntatori. L'elemento N+1 non è mai stato occupato da un buffer allocato, quindi non devi deallocarlo per nessun motivo. Diciamo che facendo il free dell'array di N+1 elementi, se ne va anche la memoria occupata da quel puntatore nullo nella posizione N+1 (così come se ne vanno anche tutti i precedenti N puntatori).
|