读书人

函数中char *str=new char[n] 申请的字

发布时间: 2013-12-23 14:30:52 作者: rapoo

函数中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更好一点。

读书人网 >C++

热点推荐