Oppure

Loading
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:32
1. ... (ma non solo) ...


Corretto, e questo "ma non solo" è molto importante perché, anche se non ridefinito tu non sai con sicurezza come è implementato lo standard per il tuo compilatore.

cosa stai liberando.


Corretto, addirittura non sai cosa stai "facendo" ...

... non si intendeva dire che non puoi usare malloc()/free() e "new"/"delete" nello stesso programma


Corretto ... nello stesso programma si possono utilizzare le "coppie" di metodologie.

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