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