删除指针的部分内存

时间:2012-08-19 00:06:38

标签: c++ new-operator realloc

有什么办法可以删除指针的部分内存。 例如

char *c = new char[1000];
sprintf(c,"this is it");

可以看出,这里浪费了很多内存。我可以释放超过要求的内存吗?

3 个答案:

答案 0 :(得分:1)

不直接。你可以用C ++做的最好的事情就是制作一个大小合适的新副本并删除旧的副本。没有类似C的realloc

答案 1 :(得分:0)

除非您的系统是RAM限制的嵌入式系统,否则为什么要这么麻烦?只需使用巨大的缓冲区并包含'dataLen'int。

答案 2 :(得分:0)

好吧,分配另一个具有数据所需精确大小的内存块,在那里复制数据并释放原始(非常大)的内存块。完成。