Я хочу реализовать свою собственную систему управления динамической памятью, чтобы добавить новые функции, которые помогают управлять памятью в C ++.
Я использую Windows (XP) и Linux (Ubuntu). Что нужно для реализации таких функций, как malloc и free? Я думаю, что мне нужно использовать системные вызовы самого низкого уровня.
Для Windows я нашел функции: GetProcessHeap, HeapAlloc, HeapCreate, HeapDestroy и HeapFree.
Для Linux я не нашел системных вызовов для управления кучей. В Linux malloc и free - это системные вызовы, не так ли?
Спасибо
Изменить:
C ++ не поддерживает сборщик мусора, а сборщик мусора работает медленно. Некоторые выделения легко освободить, но для некоторых требуется сборщик мусора.
Я хочу реализовать эти функции и добавить новые возможности:
* Каждый раз при вызове free () проверяйте, принадлежит ли указатель к куче.
* Помощь со сборкой мусора. Мне нужно сохранить некоторую информацию о выделенном блоке.
* Использовать несколько куч (HeapCreate / HeapDestroy в Windows). Я могу быстро удалить всю кучу с выделенными ей блоками.