Шаг 37 - Диагностика Утечек Памяти

Утечка памяти происходит, когда Вы распределяете память в динамической области и никогда не освобождаете эту память, чтобы делать ее доступной для многократного использования, или если Вы по ошибке используете память, которая уже была распределена. Это - специфическая проблема для программ. В программе выполняющейся долгое время, даже маленькая возрастающая утечка памяти может в конечном счете использовать все доступные ресурсы памяти и вызвать сбои в работе. Традиционно, утечка памяти должна быть очень интенсивна, чтобы обнаружиться.

Библиотека фундаментальных классов Microsoft (MFC) обеспечивает классы и функции, которые Вы можете использовать, чтобы обнаружить утечки памяти в течение создания программы в основном, эти функции берут снимок всех блоков памяти до и после определенного набора операций. Вы можете использовать эти результаты, чтобы определить, были ли все блоки памяти, распределенные в течение операции освобождены.

Размер или длина операции, которую Вы выбираете в блоки с этими диагностическими функциями, произвольны. Это может быть всего единственная инструкция программы, или это может охватывать вход и выход от полной программы. Любым путем, эти функции позволяют Вам обнаруживать утечки памяти и выделять блоки памяти, которые не были освобождены должным образом.

Обратите внимание, что MFC автоматически убирает все пропущенные объекты, когда ваша программа выходит. C MFC 4.0, MFC использует туже самую динамическую память отладки и программу распределения памяти как C библиотека во время выполнения. Для более полной информации смотри "Шаг 33 - Управление памятью и Динамическая память Отладки".

В этот раздел выходят следующие темы:


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 26.08.2000