Sto lavorando alla modifica di un programma C++ relativamente grande, dove purtroppo non è sempre chiaro se qualcuno prima di me usasse la sintassi C o C++ (questo è nel dipartimento di ingegneria elettrica di un'università, e noi EE siamo sempre tentati di usare C per tutto, e sfortunatamente in questo caso, le persone possono davvero farla franca).Oggetto C++ creato con nuovo, distrutto con free(); Quanto è grave questo?
Tuttavia, se qualcuno crea un oggetto:
Packet* thePacket = new Packet();
importa se si è distrutto con delete thePacket;
o free(thePacket);
?
Mi rendo conto che delete chiama il distruttore mentre free() no, ma Packet non ha un distruttore. Sto passando un periodo terribile in una palude di gestione della memoria e penso che questo possa essere uno dei tanti problemi.
Il pacchetto ha un distruttore, anche se non è possibile vederlo. E '... gah, rispondi sotto. – slezica
La risposta giusta è che non dovresti eliminare le cose. Avvolgili. – GManNickG