Prima di tutto, c'erano almeno 4-5 argomenti con un argomento simile su SO. Leggo ciascuno di loro e non credo che mi aiutino davvero con questo specifico problema. Se qualcun altro trova una domanda duplicata, mi scuso. Ho fatto la mia parte di ricerche prima di pubblicare questo, poiché sembra una domanda molto comune.Come sostituire correttamente gli operatori globali nuovi e di eliminazione
sto usando Visual Studio .NET 2003 su Windows 7.
ho i miei sovraccarichi di nuovo eliminare quel punto/alla mia personalizzato chiamate a malloc() e free() per la diagnostica. I miei nuovi overload/delete sono in un file di intestazione che ho incluso in alcuni file.
Il problema è che la base di codice è praticamente spaghetti e non esiste un modo semplice per assicurarsi che questi sovraccarichi vengano utilizzati da tutto. Sono incluse le librerie di terze parti che sono black-box. Usiamo anche STL ovunque.
Nei miei test ho riscontrato che STL sta ancora missando le chiamate al mio nuovo/delete e alle nuove chiamate MSVC standard/di eliminazione.
Non sembra realistico includere il mio file di intestazione in migliaia di altri file, che richiederebbero troppo tempo. Qualcuno può offrire alcuni suggerimenti su come correttamente ed efficacemente sovraccaricare nuovo/eliminare globalmente, quindi tutto utilizza il mio gestore di memoria personalizzato?
Se si definiscono gli operatori a livello mondiale in un colpo di testa pre-compilato che dovrebbero coprire il più a terra. In alternativa è possibile utilizzare le funzioni di heap CRT se questo è per rilevare perdite di memoria. – AJG85