Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-03-2008, 23:44   #1
Albi89
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];
Ho creato p, un puntatore ad una generica struttura allocata dinamicamente, ed un puntatore a puntatore a Struct, con lo spazio per una lista di 5 elementi simili susseguienti.
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
Albi89 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2008, 01:15   #2
71104
Bannato
 
L'Avatar di 71104
 
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.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2008, 07:41   #3
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da 71104 Guarda i messaggi
serve anche "delete p;". ad ogni new deve sempre corrispondere una e una sola delete: hai due new, devi avere due delete.
Con "delete elenco[0];" ha eseguito "delete p;", a lui manca "delete [] elenco;"
Eseguendo anche "delete p;" va incontro a grossi problemi.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2008, 09:07   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
giusto, scusa
colpa dell'ora
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2008, 11:26   #5
Albi89
Senior Member
 
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Con "delete elenco[0];" ha eseguito "delete p;", a lui manca "delete [] elenco;"
Eseguendo anche "delete p;" va incontro a grossi problemi.
Sì sì certo alla fine di tutto eseguo un "delete [] elenco;" ma in quel punto del programma dovevo deallocare soltanto il primo elemento
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
Albi89 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2008, 14:27   #6
The3DProgrammer
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 è.
The3DProgrammer è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Oppo Find X10, X10 Pro Max e X10 E: conf...
Dal microscopio all'IA: un cervello di i...
Cyberpunk 2077 arriverà su Battle...
Altro che divieto: interi pallet di GeFo...
QNAPTS-h966TX, il NAS per chi fa editing...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v