realloc
может расширить существующий блок памяти на месте, если есть место, полностью избегая весь процесс allocate + copy + free. Использование new[]
не допускает такой возможности.
Если вы пишете idiomati c C ++, вы должны использовать std::vector
, что делает то же самое под капотом. Но ради обучения, если у вас нет std::vector
, используйте realloc
.
Обратите внимание, что realloc
не является объектно-ориентированным. Он не будет вызывать конструкторов и деструкторов. Если вы собираетесь использовать его в C ++, вам лучше точно знать, что вы делаете!