[FondInfo] Re: Matr. 174024 Domanda su puntatori
Massimo Bertozzi
bertozzi at ce.unipr.it
Mon Jan 3 18:07:49 CET 2005
> Ho provato a scrivere del codice utilizzando i puntatori, e se non ho capito male :
> "New" serve per allocare memoria, e "Delete" per disallocarla(cioè liberarla senza dover chiudere il prg),
> quindi dopo il delete la mia variabile non dovrebbe più esistere. Di conseguenza se io tento di stamparla
No. La new alloca memoria, la delete la rilascia etichettandola come
liberamente utilizzabile. Quell'area di memoria continua ad esistere
anche dopo la delete.
> a video con un "cout" non dovrei visualizzare nulla. Invece continuo a vedere il valore.
Inoltre dovrebbe chiarire che cosa stampa, se il puntatore o il
contenuto dell'area che puntava. Nel primo caso è ovvio che il puntatore
esista ancora in quanto la delete non lo tocca; però l'indirizzo in esso
contenuto farà riferimento ad una area di memoria non piú utilizzabile.
Nel secondo caso, lei sta accedendo ad una area di memoria etichettata
come libera, ma visto che la delete non ne cancella il contenuto è in
grado di leggere cosa c'era dentro; tenga presente che però questa
operazione può provocare errori di esecuzione che dipendono da sistema
operativo, situazione PC etc.
Rammento a tutti che le domande di questo tipo vanno poste tramite la
mailing list.
Saluti,
M.
--
Massimo Bertozzi
Dipartimento di Ingegneria dell'Informazione Voice: +39 0521 90 5735
Parco Area delle Scienze, 181A, Parma, ITALY Fax: +39 0521 90 5723
WWW: http://www.ce.unipr.it/people/bertozzi E-mail: bertozzi at CE.UniPR.IT
More information about the FondInformatica
mailing list