C++中如何delete掉函数中建立的动态一维数组?需要将该数组作为返回值return?

在某个函数中建立了动态一维数组,如
int row;
cin>>row;
int *p1 = new int [row] ;
for(int i=0;i<row;i++){
p1[i] = i;
}
我指定的函数返回类型为int*,请问,如果我想要返回p1给主函数,那我要在什么时候执行
delete []p1;
语句?

如果你在函数外面还需要使用这个数组,那么需要return。然后再用完后delete追问

就是,如果我要返回p1给main函数,那我在main函数中用完p1后释放就可以?

追答

是的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-06
用完p1的时候。
后续代码没有再有对p1指向的内存块(数组)进行读写操作,就可以释放。
第2个回答  2014-01-06
让调用者对内存进行释放

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网