c++中new的用法解决方案

c++中new的用法
c语言中当malloc函数分配的内存块不够用时可以用realloc在原来的基础上重新分配内存,那么请问当new分配的内存不够用时能否在原来的基础上重新分配内存?若能如何做?

------解决方案--------------------
没听说有类似于renew的东西,友情帮顶
------解决方案--------------------
重新分配个大的。。拷贝过去。。
------解决方案--------------------
realloc 其实就是重新分配内存并拷贝原来的东西进来
------解决方案--------------------
int *a = new int[10];
int *b = new int[11];
然后再a的值拷贝到b去~其实realloc 做的就是这个事 封装而已
------解决方案--------------------
new操作没有这个功能,只有自己实现.
------解决方案--------------------
C/C++ code

    int size = 100;
    xxx a = new xxx[size];
    ....
    xxx b = new xxx[size*2];
    memcpy(b, a, size);
    delete a;
    a = NULL;
    ...

------解决方案--------------------
晕,前几天才回过一帖一模一样的……
http://topic.****.net/u/20100411/17/91206568-6b6a-4665-843f-cf84a313d20a.html
探讨
malloc() 功能上对应 operator new
free() 功能上对应 operator delete
realloc() …… 抱歉,这个没有

要动态扩展用 vector 好了,效果是差不多的。

------解决方案--------------------
没有的吧,只有重新再申请一块更大的,再把原先那块的数据移过来
------解决方案--------------------
个人考虑到其中的原因是这样:
在c中所有的声明要放在执行语句的最前面,即使动态分配内存刚开始的时候也会出现分配的内存过小的情况;而在c++中可以将new[]语句放在执行语句后面,在知道了确切的数组大小后进行内存的分配,即使是个变量,所以这就导致和c的不同;同时也是为甚么c++中没有renew的原因。
------解决方案--------------------
没见过这个东西
可以自己new一个更大的空间
然后拷过去
------解决方案--------------------
没有什么好的解决办法
建议楼主使用STL,或许可以解决你的问题
------解决方案--------------------
其实这个和你的需求有关,new相比malloc多了个调用构造函数的步骤,如果你只需要一个缓存区,可以使用malloc,不必非得用new
------解决方案--------------------
重新分配个大的,然后将小的拷贝到里面。
------解决方案--------------------
mallco是函数。 很多东西都写好的
new是运算符 只有申请空间的作用。
其他的都要人为操作
------解决方案--------------------
没见过,学习中