Короче говоря: вам придется написать свой собственный распределитель памяти поверх malloc / new.
Более длинная версия: поскольку реализации распределителя памяти различаются, нет никакого способа переносимо изменить их внутренние структуры данных, которыеотслеживать выделенные и свободные блоки и их границы.
Например, существуют методы, которые добавляют небольшой объем данных к каждому блоку памяти.Вы не можете разделить такой блок, потому что дополнительные учетные данные увеличат его размер.
Другие методы размещают свои данные управления извне из блоков, например, с помощью растровых изображений, связанных списков и т. Д.Возможно, вам повезет больше с ними.
Опять же, вам лучше написать свой собственный распределитель.
Еще лучше, если это вообще возможно, попытаться найти альтернативные способы управления вашимобъем памяти.Может быть, вам больше нужны распределители пулов.