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