Chinaunix
标题:
想问一个c++中资源回收的问题
[打印本页]
作者:
newman0708
时间:
2009-08-13 16:14
标题:
想问一个c++中资源回收的问题
通过返回值
如:char* func()
{
char *temp = new char[5];
strcpy(temp, "test");
return temp;
}
char *me=func();即可
请问题像这个函数中,为了把字符串信息返回给主函数,所以new了资源,
这像这样的资源,我们如何回收呢?
作者:
xinxin12375
时间:
2009-08-13 20:57
在外面回收啊,堆上的内存是唯一的,外面一样的可以delete.
作者:
aaaaa5aa
时间:
2009-08-14 01:22
这里应该是自动释放的,都是临时的
作者:
river617
时间:
2009-08-15 09:34
temp指针占用的内存在栈上,函数退出时,自动释放了。
但是 temp指针所指的内存在堆上,函数外面还可以继续访问,也可以delete。
作者:
superbtl
时间:
2009-08-15 16:26
temp变量是临时的,是在栈上的 但是它分配的内存是在堆上的
函数退出变量释放了,可是分配内存没释放
地址传出去了到了主函数里,所以在主函数根据地址delete下就可以了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2