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