|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
[C++] Variabili dinamiche e delete
Ciao a tutti!
Ho una piccola domanda da profano, e spero che qualcuno possa aiutarmi! Prendiamo ad esempio il seguente codice: Codice:
Struct* p = new Struct; Struct** elenco = new Struct*[5]; ... elenco[0] = p; ... delete elenco[0]; Dunque ho dato al primo elemento del mio elenco il valore del mio originario puntatore p. Se voglio deallocare lo spazio occupato dalla struttura creata originariamente, è sufficiente usare "delete elenco[0];" o serve anche un "delete p;"? Grazie per il consiglio, sicuramente sembrerà banale agli esperti che leggeranno ma mi sarete di grande aiuto! ![]()
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
serve anche "delete p;". ad ogni new deve sempre corrispondere una e una sola delete: hai due new, devi avere due delete.
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Eseguendo anche "delete p;" va incontro a grossi problemi. |
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
giusto, scusa
![]() colpa dell'ora ![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
![]() Grazie mille, il dubbio mi era nato quando ho letto sulle slide del prof che "una variabile dinamica è valida finchè vi è un riferimento valido" ![]()
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2000
Messaggi: 1459
|
ovviamente, p in quel caso sarebbe un dangling pointer. Sarebbe opportuno anche un "p = NULL;" altrimenti rischi che tu stesso o qualcun altro usi quel puntatore prendendolo come riferimento valido, quando così non è.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:41.