问题描述
- 如何释放堆的部分内存
- int *p*q;
p=new int[10];
q = P+5;
delete q;//如何只释放P+5 以后的内存?
解决方案
一般来说堆分配器分配一块内存时会在这块内存的头部或者尾部保存一些信息(包括这块内存的大小和指向其他内存块的指针)
释放一块堆内存时需要先找到之前保存的信息.
还没有见过可以部分释放一块堆内存一般都是整块释放.
但从技术上是可以实现的.
我之前写过一个简单的堆分配器基本原理如上可以参考一下:http://blog.csdn.net/ce123_zhouwei/article/details/21706451
时间: 2024-09-14 21:56:17