Поделиться через


Интерпретация типов блоков памяти

Этот раздел применим к следующим выпускам:

Выпуск

Visual Basic

C#

F#

C++

Web Developer

Express

Тема не применяется Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Pro, Premium и Ultimate

Тема не применяется Тема не применяется Тема не применяется

Только машинные коды

Тема не применяется

Как видно из раздела Включение отображения утечек памяти, в сведениях об утечке каждый блок потерянной памяти определяется как обычный, клиентский или CRT-блок.На практике обычные и клиентские блоки — те типы, которые скорее всего можно увидеть.

  • Обычный блок — это обыкновенная память, выделенная программой.

  • Клиентский блок — особый тип блока памяти, используемой программами MFC для объектов, для которых деструктор обязателен.Операция new в MFC создает либо обычный, либо клиентский блок, в соответствии с создаваемым объектом.

  • Блок CRT — это блок памяти, выделенной библиотекой CRT для внутреннего использования.Библиотека CRT обрабатывает освобождение этих блоков, поэтому маловероятно увидеть их в отчете об утечке памяти — разумеется, если не возникнет серьезный сбой (например, повреждение самой библиотеки CRT).

Существуют два типа блоков, которые невозможно увидеть в отчетах об утечках памяти:

  • Свободный блок — блок памяти, которая была освобождена.

  • Пропускаемый блок — блок, специально помеченный, чтобы он не появлялся в отчете об утечке памяти.

См. также

Основные понятия

Обнаружение и изоляция утечек памяти

Типы блоков в куче отладки