Squ*_*all 12 c++ dynamic-memory-allocation
我想实现自己的动态内存管理系统,以添加有助于在C++中管理内存的新功能.
我使用Windows(XP)和Linux(Ubuntu).实现'malloc'和'free'等功能需要什么?我认为我必须使用最低级别的系统调用.
对于Windows,我找到了函数:GetProcessHeap,HeapAlloc,HeapCreate,HeapDestroy和HeapFree.
对于Linux,我没有找到任何系统调用堆管理.在Linux上,malloc和free是系统调用,不是吗?
谢谢
编辑:
C++不提供垃圾收集器和垃圾收集器很慢.有些分配很容易免费,但有些分配需要垃圾收集器.
我想实现这些函数并添加新功能:
*每当调用free()时,检查指针是否属于堆.
*帮助垃圾收集.我必须存储有关已分配块的一些信息.
*使用多个堆(Windows上的HeapCreate/HeapDestroy).我可以快速删除整个堆及其分配的块.