Работа функции realloc в С и С++ имеет некоторые отличия. 1
В С функция realloc служит для изменения размера ранее выделенной памяти, на которую ведёт указатель. 2 Если новый размер больше ранее выделенной памяти, то функция сначала пытается расширить уже существующую область до большего размера, если ей это не удаётся, то создаётся новая с копированием всей прежней информации. 2 Предыдущая область памяти автоматически освобождается. 2
В С++ функция realloc выполняет перераспределение блоков памяти. 3 Размер блока памяти, на который ссылается параметр, изменяется на заданное количество байтов. 3 Функция может перемещать блок памяти на новое место, в этом случае она возвращает указатель на новое место в памяти. 3 Содержание блока памяти сохраняется даже если новый блок имеет меньший размер, чем старый. 3 Отбрасываются только те данные, которые не вместились в новый блок. 3