Подтвердить что ты не робот

Есть ли эквивалент realloc в С++?

В C мы имеем malloc(), free() и realloc(). В С++ мы имеем new(), delete() и их версии массивов. Есть ли функция С++ realloc? Я внедряю некоторые низкоуровневые материалы во встроенных землях и просто понял, что не существует функции realloc для сопряжения с функциями С++ и хочет удостовериться, что я ничего не пропустил. Я предполагаю, что "размещение нового" в новом отдельном буфере является ближайшим совпадением, но нужно быть уверенным.

Повторяя вопрос немного, поскольку я получаю некоторый ответ немного далеко.

Я реализовал уровень устройства malloc/new/realloc/etc. функции на моем встроенном устройстве и хотели бы дважды проверить, чтобы убедиться, что не существует функции типа realloc С++, о которой я не знал.

4b9b3361

Ответ 1

Нет, нет прямого эквивалента. Вам нужно будет выполнить эту реализацию самостоятельно. Поскольку класс действительно не должен менять свой размер, это не проблема. Перемещение семантики может обрабатывать большинство этих случаев.

Однако существуют некоторые классы, которые используют данные заголовка header + tail end. Чтобы закодировать их "правильно", вам придется переопределить функции operator new() и operator delete() для класса для обработки этих дополнительных "гибких" данных. Как вы перераспределяете данные, которые соответствуют вашим потребностям.

Если это не отвечает на ваш вопрос, отправьте пример того, что вы пытаетесь сделать.