[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