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


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

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

C#

C++

Web Developer

Экспресс-выпуск

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

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

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

Standard

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

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

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

Pro и Team

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

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

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

Обозначения:

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

Применяется

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

Неприменимо

Тема применяется, но команда по умолчанию сокрыта

Команда или команды скрытые по умолчанию.

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

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

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

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

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

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

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

См. также

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

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

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