16/01/15 21:12
AldoBaldo
Ah! Be', sì, messa così ha senso e riesco a capirla (credo). Vediamo se è vero.
1. Il problema si pone
particolarmente (ma non solo) se "new" è stato in qualche modo personalizzato/ridefinito, perché a "new" potresti far fare praticamente qualsiasi cosa, come a qualsiasi altro operatore. Giusto?
2. Il problema nasce se usi free() per liberare "roba" allocata (in effetti, "creata"
con "new", e/o "delete" per liberare roba allocata con malloc(), perché visto quel che si è detto nel punto precedente finisci per non sapere realmente cosa stai liberando. Giusto?
Dunque nel manuale non si intendeva dire che non puoi usare malloc()/free() e "new"/"delete" nello stesso programma, ma che non si può usare malloc()/"delete" e "new"/free(), il che avrebbe perfettamente senso anche per me che non sono certo un esperto. Se le cose stanno così, ovvero se ho capito bene, il manuale non era per niente chiaro e lasciava un po' troppe cose nel mondo dei sottintesi. Per fortuna c'è Pierotofy.it!
Nessuno, mi dici ancora solo se ho capito bene o no? In caso venisse fuori che non ho ancora capito, vedrò di pensarci ancora un po' su.
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.
16/01/15 21:38
AldoBaldo
Grazie, Nessuno! Sei un drago!
Magari mi entusiasmo per poco, ma a me sembra di aver chiarito un punto molto importante. Che, oltretutto, "stagnava" lì nella mia mente da diversi anni.
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.
17/01/15 10:07
TheDarkJuster
Ah... non avevo capito che mischiare new e malloc significasse liberare con free qualcosa allocato con new e vice versa. Se è così io NON faccio di questi miscugli.
aaa