Personalmente la mia risposta sarebbe:
Per prima cosa utilizza gli avvisi che il compilatore fornisce, che nel caso di alcune aziende ben conosciute, le impostazioni predefinite della catena di strumenti sono silenziose, assicurandosi che tutti gli avvisi siano stati abilitati. In realtà raccomanderei di attivare tutti gli avvisi del compilatore e di utilizzare uno standard di codifica che richiedesse avvisi zero.
Vorrei anche prendere in considerazione l'esecuzione dell'analisi statica con uno strumento come Coverity, o anche PCLint, dato che sono ottimi per individuare potenziali problemi come questo.
Quindi eseguirò l'intera suite di test con uno strumento di profilazione per garantire che avessimo il più possibile una copertura del 100%, quindi di nuovo sotto un controllo come Valgrind, o anche il debugger se supporta questo.
Infine, e probabilmente solo se la catena di strumenti & target non supportava tali strumenti e se non potessi comprare in una libreria per fare questo , prenderei in considerazione l'implementazione del mio, sia in un build speciale per test o come componente di sfondo del prodotto.
Solo allora, se gli avessi chiesto di espandermi, inizierei a implementarlo.
Se viene chiesto perché questa strategia risponderò costo , gli autori del compilatore hanno trascorso molte migliaia di ore lavorative affrontando problemi come perdite di memoria, così come gli sviluppatori di strumenti di analisi statica e entrambi forniscono 100 % di copertura del codice. Strumenti come Valgrind possono svolgere un lavoro eccellente, ma solo se il codice viene esercitato al 100% mentre stanno guardando, quindi utilizzando uno strumento di profilazione per stabilire la copertura.
Generalmente gli strumenti di profilazione della memoria non appartengono al codice di produzione dato che, per la maggior parte, normalmente si tratta di un overhead piuttosto pesante e di solito è più efficace abilitare, installare o abilitare la garbage collection.
Potrebbero aver cercato di menzionare RAII, Acquisizione risorse è inizializzazione , ma rigorosamente quello è una strategia per evitare piuttosto che rilevare perdite di memoria.