[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