Вы пометили этот C ++, так почему бы вам использовать «громоздкий» malloc (), а не новый? Я не уверен, что громоздко в malloc в любом случае; внутренне может быть и так, но зачем тебе это? И если вам все равно (например, по причинам детерминизма), вы можете выделить большой пул и реализовать свой собственный распределитель для этого пула. Конечно, в C ++ вы можете перегрузить оператор new для этого.
sbrk используется для приклеивания библиотеки C к системе управления памятью операционной системы. Поэтому делайте вызовы ОС, а не используйте sbrk (). Что касается того, как это работает, это зависит от системы. Например, если вы используете библиотеку Newlib C (обычно используется в «голых железных» встраиваемых системах с компилятором GNU), вам нужно реализовать sbrk самостоятельно , поэтому, как она работает в этих условиях, зависит от вы до тех пор, пока он достигает требуемого поведения расширения кучи или неудачи.
Как видно из ссылки, она мало что делает и будет чрезвычайно громоздкой для непосредственного использования - вы, вероятно, в конечном итоге включите ее во все функции, которые предоставляет malloc и new. любой случай.