是否可以创建一个遵循简单逻辑的内存池实现:
1 - 分配 n 字节的内存池。
2 - 使用修改后的 new(); 不分配内存的函数/操作符只获得一个指向内存池开头的指针。这种方式对象是动态创建的,没有开销。
3 - 当内存池不足时,它会释放剩余的内存并分配一个新的内存池
4 - 在第一个内存池中创建的对象将根据它们的大小来获取内存。在第一个池中分配的内容与在其不足时归还的内容之间的差异由对象在删除时恢复。
我的担心主要是因为我不知道如何删除小于分配的内存池,请记住,除了内存池对象末尾的内容之外,内存池还有一个 OS 标头那是在池中分配的第一个对象之前。我需要什么方法来确保没有内存泄漏,删除多余的内存池不会删除在其中分配的对象,并且安全地删除了内存池片段的标头。
谢谢!
编辑:请注意,目的是让内存池分配内存并由对象释放,这些对象可能具有不同的生命周期。如果这是可能的...