函数中char *str=new char[n] 申请的字符串作为函数返回值,请教str空间怎么释放
函数中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更好一点。
定义一个函数
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更好一点。