Dalam kode C / C ++ yang tidak dikelola, praktik apa yang terbaik untuk mendeteksi kebocoran memori? Dan pedoman pengkodean yang harus dihindari? (Seolah itu sesederhana itu;)
Kami telah menggunakan sedikit cara konyol di masa lalu: memiliki peningkatan penghitung untuk setiap panggilan alokasi dan pengurangan memori saat membebaskan. Pada akhir program, nilai penghitung harus nol.
Saya tahu ini bukan cara yang bagus dan ada beberapa tangkapan. (Misalnya, jika Anda membebaskan memori yang dialokasikan oleh panggilan platform API, jumlah alokasi Anda tidak akan sama persis dengan jumlah membebaskan Anda. Tentu saja, maka kami menambah penghitung saat memanggil panggilan API yang mengalokasikan memori.)
Saya mengharapkan pengalaman, saran, dan mungkin beberapa referensi untuk alat yang menyederhanakan ini.