Difference between revisions of "Libchecker:xrealloc"

From EjudgeWiki
(New page: Навигация: Система ejudge/Проверяющие программы/libchecker/Функции/[[Libchecker:Работа с пам...)
 
 
Line 1: Line 1:
Навигация: [[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Функции|Функции]]/[[Libchecker:Работа с памятью|Работа с памятью]]/[[Libchecker:xrealloc|xrealloc]]
+
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Проверяющие программы]]/[[libchecker]]/[[Libchecker:Функции|Функции]]/[[Libchecker:Работа с памятью|Работа с памятью]]/[[Libchecker:xrealloc|xrealloc]]
  
 
Функция является надстройкой над стандартной функцией realloc
 
Функция является надстройкой над стандартной функцией realloc

Latest revision as of 13:56, 22 August 2008

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

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

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

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

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