[Tech] OT - Programmazione C
Valerio Montagnani
tech@vmontagnani.it
Sab 21 Feb 2004 17:03:15 CET
On Thu, 19 Feb 2004 10:59:56 +0100
"Daniele Masini" <d.masini@tiscali.it> wrote:
> Liberare la memoria allocata con free() non significa rendere nullo il
> relativo puntatore, infatti il puntatore rimane al valore che gli era stato
> assegnato precedentemente dalla malloc(). Per non richiare di far
> NULL al puntatore dopo aver liberato la memoria da questo puntata.
>
> [...]
> free(buff);
> buff = NULL;
> [...]
>
> una semplice funzione (ad es. libera()) contenente le istruzioni sopra
> riportate, che il porcesso deve chiamare al posto di free().
> In questo modo, quanlunque ulteriore riferimento (dereference) ad un
> puntatore "liberato" porterebbe ad un errore, che evidenzierebbe il fatto
> che si sta tentando di effettuare un'operazione illecita.
>
> Daniele
>
Grazie daniele, la tua spiegazione è stata chiara e concisa.
Vale
--
Valerio Montagnani (Lug-Account) <tech@vmontagnani.it>
pub 1024/C7E4BC57 sub 2048g/0E170155
Key fingerprint = D5A4 EDFC 060C 5BD6 E2DD 8252 3B67 C1EB C7E4 BC57
Maggiori informazioni sulla lista
flug-tech