delete函数可以放在功能函数里吗?

例如
int* process(int* arr)
{
int* b = new int[10]; 
for(int i = 0; i<10; i++)
b[i] = *(arr+i) + 1;
...
return b;
delete[] b;
}

这样写对吗?如果在main函数中要调用process( )这个函数,并输出它的返回值,可以调用成功吗?不会因为在process()里已经释放了b的内存就使结果错误吧?(前提是main函数只调用了这一个函数)

阿晨1998
浏览 820回答 2
2回答

慕后森

这个delete不可以放在里面,因为你已经返回了,你可以在外面加一个函数,函数里面就一个delete.如void releasebuf(int *tt){delete[] tt;}这样等你要释放时调用他就行了

一只甜甜圈

执行完return语句后,函数调用结束,不会执行delete
打开App,查看更多内容
随时随地看视频慕课网APP