Вам не нужно сохранять указатели; определение места размещения нового оператора (любой
operator new
функция, которая принимает более одного аргумента) не
удалить существующих операторов; это просто перегружает их. Чтобы позвонить
стандартная функция оператора новая функция от оператора размещения новая функция:
p = ::operator new( size );
Обратите внимание, что вы не хотите сделать это, если ваше место размещения вернется
все, кроме точного адреса, возвращаемого ::operator new
. Иначе,
delete
не будет работать. Если вы используете новое место размещения, которое возвращает что-либо
кроме указателя, возвращаемого ::operator new
, вам нужно определить
новый глобальный operator delete
(потому что это тот, который будет
называется), что в свою очередь означает, что вы должны определить новый стандарт
operator new
, так что он будет правильно работать с вашим новым
operator delete
. Чтобы избежать необходимости реализовывать все
управление памятью самостоятельно, используйте malloc
и free
в своем
Реализации.