首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中有类似C中的reallocate函数没解决方案

2012-02-10 
C++中有类似C中的reallocate函数没voidStack::Grow(){cout Doublestackfrom capacity endl//

C++中有类似C中的reallocate函数没
void   Stack::Grow()
{
cout < <   "Double   stack   from   " < <   capacity < <   endl;
//分配新数组
int   *arr_new=new   int[2*capacity];
//复制所有数据项
for(int   i=0;i <capacity;++i)
{
arr_new[i]=arr[i];        
}
capacity=2*capacity;
//释放内存
delete   []   arr;
arr=arr_new;         //用新数组替换旧数组  
}

在上面里我想新分配的内存接在以前所用的内存后面,就象C里面的reallocate

[解决办法]
没有。
realloc也没什么神奇的,也是重新申请,然后memcpy过去的。具体可以看源码。
所以不要觉得重新申请,然后copy的方法有什么不好。

[解决办法]
你的Grow已经完成了内存重新分配,
原有的值也已经正确拷贝,
不需要realloc了 ......

热点排行