Libchecker:XREALLOC

From EjudgeWiki
Revision as of 13:36, 22 August 2008 by Cher (talk | contribs) (New page: Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/[[Libchecker:Функции|Фун...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

Данный макрос — это обертка над функцией выделения памяти xrealloc. Например, если необходимо расширить массив a типа double до n элементов, с использованием xrealloc фрагмент кода будет следующим:

a = (double*) xrealloc(a, n * sizeof(a[0]));

а с использованием макроса XREALLOC следующим:

XREALLOC(a, n);

У макроса XREALLOC два параметра. Первый параметр — это переменная указательного типа, в которой хранится адрес текущего фрагмента памяти, и будет сохранен адрес выделенного фрагмента памяти. Второй параметр — это количество элементов массива (обратите внимание, не размер массива в байтах, а именно количество элементов массива). Второй параметр используется один раз, поэтому в качестве второго параметра могут использоваться выражения с побочным эффектом.