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

函数中char *str=new char[n] 申请的字符串作为函数返回值,请教str空间怎么释放

2013-12-23 
函数中char *strnew char[n] 申请的字符串作为函数返回值,请问str空间如何释放?定义一个函数char *getStr

函数中char *str=new char[n] 申请的字符串作为函数返回值,请问str空间如何释放?
定义一个函数
char *getStr(...)
{
 ...
char *str = new cahr[n];
....
return str;
}

另外一个函数
void Func()
{
... 
 char *pstr = getStr();
...
}

请问getStr(...)new申请的空间如何释放呢?

[解决办法]
void Func()
{
... 
 char *pstr = getStr();
 if (NULL != pstr)
 {
     delete[] pstr;
 }
...
}
[解决办法]
直接delete不是好方法。应该按照谁申请谁释放的原则,写一个releaseStr()的函数,在里面释放。
[解决办法]
只要指针正确,用delete []来释放,不过是不是用std::string更好一点。

热点排行