la memoria dinamica allocata con new e non rimossa con delete viene automaticamente deallocata alla fine del programma o rimane come garbage anche dopo l'uscita dal programma stesso???
thanks...
la memoria dinamica allocata con new e non rimossa con delete viene automaticamente deallocata alla fine del programma o rimane come garbage anche dopo l'uscita dal programma stesso???
thanks...
Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.
E' comunque allocata nello spazio di indirizzamento del programma quindi quando esso termina viene considerata come non più allocata dal sistema operativo.Ovviamente durante l'esecuzione del programma invece resta allocata e consuma risorse magari preziose per quello e per gli altri programmi in esecuzione.Originariamente inviato da hfish
la memoria dinamica allocata con new e non rimossa con delete viene automaticamente deallocata alla fine del programma o rimane come garbage anche dopo l'uscita dal programma stesso???
thanks...
Il centro dell'attenzione non è sempre un buon posto in cui trovarsi
Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)
devi assolutamente fare la new prima di uscire ho ti rimane in memoria.
ricorda quando fai la new devi fare sempre il delete dell'oggetto che hai creato.
ciao
da quel che so, col c++ devi NECESSARIAMENTE fare l'operazione di delete dopo aver allocato risorse con new..Originariamente inviato da hfish
la memoria dinamica allocata con new e non rimossa con delete viene automaticamente deallocata alla fine del programma o rimane come garbage anche dopo l'uscita dal programma stesso???
thanks...
anzi, appena fai una new, un pò + sotto scrivi pure il relativo delete: purtroppo è un errore che al tempo di compilazione non viene stimato, quindi crea perdite di risorse..perchè non hai mai detto al sistema operativo che quella memoria non serve +..
con java è diverso: c'è il garbage collector (credo si chiami così), il quale pensa a ripulire la memoria..
Per liquidare un popolo si comincia con il privarli della memoria.Si distruggono i loro libri, la loro cultura, la loro storia. E qualcun’ altro scrive loro altri libri, li fornisce di un’altra cultura, inventa per loro un’altra storia. (Milan Kundera)
Questo non sempre è possibile!anzi, appena fai una new, un pò + sotto scrivi pure il relativo delete
Si ma la domanda era se alla chisura del programma la memoria resta allocata,la risposta è NO perchè la memoria è comunque allocata nello spazio di indirizzamento del processo/i associato/i al programma e quindi quando il programma termina viene comunque liberata (almeno sotto windows)...crea perdite di risorse..perchè non hai mai detto al sistema operativo che quella memoria non serve +..
Si si hiama così.con java è diverso: c'è il garbage collector (credo si chiami così), il quale pensa a ripulire la memoria..
Il centro dell'attenzione non è sempre un buon posto in cui trovarsi
Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)
Nonostante la memoria allocata in un programma faccia parte dello spazio indirizzamento del programma stesso, io consiglio
SEMPRE di creare una funzione di deallocazione per tutto quanto allocato durante l'esecuzione ... infatti non é detto ke il sistema operativo liberi tutte le risorse di memoria allocate da un programma, anzi in talune circostanze, specialmente quando si scrivono programmi multithread la deallocazione della memoria allocata con new è praticamente d'obbligo se si vogliono evitare brutte sorprese!
Il C++ non ha garbage collector per cui é sempre a cura del programmatore allocare/deallocare la memoria ... evitate ke lo faccia il s.o. per voi (ci son delle belle differenze su come agisce windows95,win98,winMe,WinNT4.0,Win2k ,WinXP e un sistema unix-like e soprattutto su "quando").
L'iterazione é umana, la ricorsione é divina ...
... il tracollo dello stack é divinamente dietro l'angolo
Il mio ovviamente non era un invito a non deallocare la memoria,ho solo detto che in generale windows (che mi risulti qualunque versione) dealloca la memoria al termine di un programma,anche quì c'è stato un fraintendimento,intendevo al termine regolare di un programma non al crash,come si comporta in questo caso non lo so.CiaoOriginariamente inviato da DVice
Nonostante la memoria allocata in un programma faccia parte dello spazio indirizzamento del programma stesso, io consiglio
SEMPRE di creare una funzione di deallocazione per tutto quanto allocato durante l'esecuzione ... infatti non é detto ke il sistema operativo liberi tutte le risorse di memoria allocate da un programma, anzi in talune circostanze, specialmente quando si scrivono programmi multithread la deallocazione della memoria allocata con new è praticamente d'obbligo se si vogliono evitare brutte sorprese!
Il C++ non ha garbage collector per cui é sempre a cura del programmatore allocare/deallocare la memoria ... evitate ke lo faccia il s.o. per voi (ci son delle belle differenze su come agisce windows95,win98,winMe,WinNT4.0,Win2k ,WinXP e un sistema unix-like e soprattutto su "quando").
Il centro dell'attenzione non è sempre un buon posto in cui trovarsi
Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)
Un garbage collector come quello di Java invece si occupa di deallocare la memoria appena non esistono riferimenti ad essa (diminuendo le prestazioni).
I've got a bike. You can ride it if you like.