nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
No il c++ non ha gc e nelle stesse condizioni si comporta allo stesso modo del c
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da nessuno:
No il c++ non ha gc e nelle stesse condizioni si comporta allo stesso modo del c
|
mi ricordavo ci fosse una differenza, forse solo il fatto che con new non serve il sizeof().. |
|
AldoBaldo (Member)
Guru
Messaggi: 700
Iscritto: 08/01/2015
|
Come regola generale trovo molto comodo allocare in un senso e deallocare in senso opposto. Di solito mi protegge dagli errori come quello descritto da Mikelius. Dunque, nel caso specifico, se allocassi nell'ordine prima la struttura, poi il primo spazio di memoria puntato dal puntatore "interno" *uno, quindi il secondo e il terzo, deallocherei nell'ordine prima il terzo spazio di memoria, poi il secondo, quindi il primo e, alla fine, la struttura che ne contiene i puntatori. So che in questo caso l'ordine primo-secondo-terzo è irrilevante, ma essere ordinato mi aiuta a non perdere traccia di quel che sto facendo, per cui cerco di attenermi anche quando non è indispensabile.
P.S. Questo commento è inutile, ma di quando in quando mi dà una certa soddisfazione patologica intervenire per far sapere che "incombo nel buio"!
Ultima modifica effettuata da AldoBaldo il 14/02/2016 alle 9:32
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti. |
|
Template (Member)
Pro
Messaggi: 177
Iscritto: 09/12/2015
|
Postato originariamente da AldoBaldo:
Come regola generale trovo molto comodo allocare in un senso e deallocare in senso opposto. Di solito mi protegge dagli errori come quello descritto da Mikelius. Dunque, nel caso specifico, se allocassi nell'ordine prima la struttura, poi il primo spazio di memoria puntato dal puntatore "interno" *uno, quindi il secondo e il terzo, deallocherei nell'ordine prima il terzo spazio di memoria, poi il secondo, quindi il primo e, alla fine, la struttura che ne contiene i puntatori. So che in questo caso l'ordine primo-secondo-terzo è irrilevante, ma essere ordinato mi aiuta a non perdere traccia di quel che sto facendo, per cui cerco di attenermi anche quando non è indispensabile.
P.S. Questo commento è inutile, ma di quando in quando mi dà una certa soddisfazione patologica intervenire per far sapere che "incombo nel buio"! |
Non è assolutamente un commento inutile: il metodo che proponi (e che, tra parentesi, in molti casi uso anch'io) è ottimo al fine di non dimenticare mai di deallocare tutto quanto allocato |
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Vari garbage collector sono stati scritti per il C e per il C++, il più famoso è liberamente scaricabile e modificabile: http://www.hboehm.info/gc/ ma ce ne sono altri di varie forme, dimensioni e prezzi.
Non lo dico perchè tu possa usarlo come scusa per non sapere come si gestisce la memoria nell'heap, perché è una delle cose più importanti (a mio avviso) di quando lavori con il C, ma per farti conoscere un comodo strumento.
|
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da AldoBaldo:
grazie del tuo consiglio, lo eserò senz'altro.
|
Postato originariamente da TheDarkJuster:
Vari garbage collector sono stati scritti per il C e per il C++, il più famoso è liberamente scaricabile e modificabile: http://www.hboehm.info/gc/ ma ce ne sono altri di varie forme, dimensioni e prezzi.
Non lo dico perchè tu possa usarlo come scusa per non sapere come si gestisce la memoria nell'heap, perché è una delle cose più importanti (a mio avviso) di quando lavori con il C, ma per farti conoscere un comodo strumento. |
Grazie per il link, gli darò un occhiata per sapere personale, ma , come dici tu, se voglio imparare a programmare in c devo evitare la pappa pronta. |
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Non è "pappa pronta" è "un valido strumento/aiuto per lo sviluppo".
|
|
()
Newbie
Messaggi:
Iscritto:
|
pappa pronta nel senso che non mi va di usare "soluzioni" che dovrei imparare a saper utilizzare io.
Se il GC mi nega la possibilità di capire bene come va gestita la memoria, per ora potrebbe essere dannoso per imparare a programmare.
Poi più in là, che ben vengano questi "aiuti"
|
|