CMemoryState

CMemoryState не имеет базовый класс.

CMemoryState предоставляет удобный способ для обнаружения утечек памяти в вашей программе. «Утечка памяти» происходит, когда памяти для объекта в куче, но не освобождаются, когда он уже не требуется. Такой утечки памяти в конечном итоге может привести к нехватке памяти ошибок. Существует несколько способов выделять и освобождать память в вашей программе:

CMemoryState диагностика только помогают обнаруживать утечки памяти, когда выделена с помощью оператора new память не освобождается, использование delete. Две другие группы функций управления памятью для программ C++ и смешения их с новой и удаления в той же программе не рекомендуется. Дополнительные макро DEBUG_NEW, предоставляется заменить оператор new , когда требуется файл и номер строки отслеживание выделений памяти. DEBUG_NEW используется всякий раз, когда обычно используется оператор new.

Как и в случае с другими диагностика, CMemoryState диагностика, доступны только в отладочных версиях программы. Отладочная версия должна иметь _DEBUG константа, определенная.

Если вы подозреваете, что ваша программа имеет место утечка памяти, можно использовать функции контрольно-пропускной пункт, разницаи DumpStatistics обнаружить разницу между состояния памяти (выделенных объектов) на двух различных этапах выполнения программы. Эта информация может быть полезной при определении ли функция очистки всех объектов, которые он выделяет.

Если просто зная, где происходит дисбаланс в выделении и освобождении не предоставляет достаточно сведений, можно использовать функцию DumpAllObjectsSince для сброса всех объектов, выделенных с момента предыдущего вызова контрольно-пропускного пункта. Этот дамп показывает порядок распределения, исходного файла и строки, где объект было выделено (если вы используете DEBUG_NEW для выделения) и дифференцирование, объекта, его адрес и его размер. DumpAllObjectsSince также вызывает функцию Dump каждый объект для предоставления информации о текущем состоянии.

Для получения дополнительных сведений о том, как использовать CMemoryState и другие диагностики, см. Поддержку отладки MFC в Visual C++ программист руководстве.

Примечание   Объявления объектов типа CMemoryState и вызовы функций-членов должны быть скобки #if defined(_DEBUG)/#endif директивы. Это заставляет диагностики памяти для включения только в отладке сборки вашей программы.

Члены классаИерархическая схема

Index