mprobe()

Выполнить проверку согласованности участка памяти

Прототип:

#include <malloc.h>
enum mcheck_status mprobe( void *ptr );

Аргументы:

ptr
Указатель на начало блока кучи.

Библиотека:

libc

Описание:

Функция mprobe() пытается выполнить проверку согласованности выделенного блока, указанного параметром ptr, который ранее был возвращен вызовом calloc(), malloc() или realloc().

Проверки согласованности выявляют несоответствия в заголовке блока или в последнем байте блока. Они также могут обнаруживать выход за пределы блока.

Предоставляемый уровень проверки зависит от того, с какой версией аллокатора слинковано приложение:

Одно из значений перечисления mcheck_status:

Возвращаемое значение:

MCHECK_DISABLED
Проверка согласованности в настоящее время не включена, или информация о согласованности недоступна для этого блока.
MCHECK_OK
В этом блоке нет несогласованностей.
MCHECK_HEAD
Заголовок блока повреждён.
MCHECK_TAIL
Последний байт блока повреждён или обнаружен выход за пределы блока.
MCHECK_FREE
Параметр ptr не является указателем на выделенный блок кучи.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Предостережения:

Вызов mprobe() для указателя, уже освобожденного вызовом free() или realloc(), может повредить структуры данных аллокатора памяти и привести к неопределенному поведению.

Тематические ссылки:

mallopt(), mcheck()




Предыдущий раздел: Описание API системной библиотеки