Libchecker:xrealloc

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Функции/Работа с памятью/xrealloc

Функция является надстройкой над стандартной функцией realloc

void *xrealloc(void *ptr, size_t size);

Функция пытается изменить размер блока памяти, на который указывает параметр ptr, на размер size (допускается как увеличение, так и уменьшение размера). Возвращается указатель на новую область памяти, который может не совпадать со значением указателя ptr, то есть область памяти в процессе изменения размера может быть перемещена. Если область памяти указанного размера выделить не удается, проверяющая программа немедленно завершается со внутренней ошибкой проверки. Таким образом, проверяющая программа может быть уверена, что возвращаемый функцией xrealloc указатель никогда не равен NULL.

Если размер области памяти увеличивается, то добавленные байты памяти не инициализируются. Если ptr равен NULL, то xrealloc работает как функция xmalloc, а если size равен 0, то как функция free. Выделенная память может быть освобождена с помощью вызова функции free стандартной библиотеки.