Как сделать так, чтобы при написании самого кода на C ++ он не вызывал утечек памяти? - PullRequest
6 голосов
/ 20 августа 2009

Выполнение valgrind или очистка будет следующим шагом Но во время написания самого кода как вы гарантируете, что он не вызовет утечек памяти? Вы можете обеспечить следующие вещи: - 1: количество новых равно удаляемому 2: Дескриптор открытого файла закрыт или нет

Есть что-нибудь еще?

Ответы [ 13 ]

0 голосов
/ 20 августа 2009

Существуют инструменты статического анализа кода, которые делают подобные вещи; wikipedia - это хорошее место, чтобы начать поиск. По сути, если вы не будете осторожны и не выберете правильные контейнеры, вы не можете дать гарантии относительно кода, который вы пишете, - следовательно, необходимы такие инструменты, как valgrind и gdb.

0 голосов
/ 20 августа 2009

если вы делаете рекурсивное дерево или график в своем коде для структуры данных, возможно, съедаете всю вашу память.

0 голосов
/ 20 августа 2009

Убедитесь, что разделяемая память, созданная вашим приложением, освобождена, если ее никто больше не использует, очистите файлы, отображенные в памяти ...

По сути, убедитесь, что вы очищаете любой тип ресурса, который ваше приложение прямо или косвенно создает. Файловые дескрипторы - это только один тип ресурсов, которые ваше приложение может использовать во время выполнения.

...