|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Registered User
Iscritto dal: Oct 2006
Messaggi: 82
|
[c++] Alcuni dubbi
Se ho un codice di questo tipo:
Time *timePtr; timePtr = new Time; delete timePtr; timePtr->funzionemembro(); ho visto che è possibile eseguire una funzione membro dopo avere cancellato l'oggetto con esiti imprevedibili, per evitare questo secondo voi è buona norma mettere 0 nel puntatore timePtr? In questo modo intendo: Time *timePtr; timePtr = new Time; delete timePtr; timePtr = 0; timePtr->funzionemembro(); In questo modo dovrei avere un segmentation fault e riuscirei ad accorgermi dell'errore. Altra domanda: Se io mi dimentico di cancellare un oggetto un una qualsiasi cosa allocata tramite la new, quando chiudo il programma la memoria viene comunque liberata???? |
![]() |
![]() |
![]() |
#2 | |||
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
Quote:
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|||
![]() |
![]() |
![]() |
#3 |
Registered User
Iscritto dal: Oct 2006
Messaggi: 82
|
grazie mille
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
|
veramente in C++ dovresti ottenere segmentation fault solo se funzionemembro è virtuale.
|
![]() |
![]() |
![]() |
#5 |
Registered User
Iscritto dal: Oct 2006
Messaggi: 82
|
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Ci sono s.o. che NON eseguono il tracking delle risorse (non soltanto memoria, ma anche file, lock, ecc.) allocate da un'applicazione (che, quindi, non vengono rilasciate alla fine della loro esecuzione), per cui questo compito in genere è demandato al compilatore o all'applicazione stessa. Quindi se non se ne occupa il compilatore è necessario che lo faccia l'applicazione. In generale cerca sempre di rilasciare le risorse che usi.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:21.