Es gibt drei Hauptwege, dies zu tun.
Die erste ist zu Speicherlecks in erster Linie nicht erstellen. Defensive Programmiertechniken sind hier von unschätzbarem Wert. Eine Zusammenfassung dieser Probleme finden Sie unter excellent presentation oder das entsprechende Kapitel in Secure C Coding. Ich bin vertrauter mit C als C++, aber ich verstehe, dass C++ smart pointers hier nützlich sind.
Ein zweiter Ansatz statische Analyse, die versucht, Fehler in Ihrem Quellcode zu erkennen. Das Originalwerkzeug in dieser Kategorie ist fussel, das jetzt leider veraltet ist. Die besten Werkzeuge, soweit ich weiß, sind kommerziell wie coverty. Jedoch einige free tools do exist.
Der dritte Ansatz besteht darin, Speicherverluste zur Laufzeit zu erkennen, wie INSURE ++ tut. Valgrind ist hier ausgezeichnet und sehr zu empfehlen. Es kann helfen, Fehler zu finden, die Sie bereits eingeführt haben. Es ist besonders hilfreich, wenn Sie eine Testsuite mit einer guten Codeabdeckung haben.
Verwenden Sie C oder C++? Die verfügbaren Lösungen sind für die beiden Sprachen ziemlich unterschiedlich. –
Ich benutze C. Kannst du bitte eine Lösung für C und C++ geben – Ankur
@ Ankur: Nun, eine Antwort, die für C Sinn macht, wird nicht sinnvoll für C++ und umgekehrt. Speicherverwaltung ist eines der Bits, die sich in C++ ändern. –