请教new delete的使用
char *reverse(char *str)
{
int len=strlen(str);
char *ptr=new char[len+1];
//......
return ptr;
}
我这里在调用函数中通过new开辟了新的内存,并返回这段内存的起始地址。问题是我应该在哪里释放 如何释放这段内存?
我不太清楚该如何释放调用函数中局部开辟的内存空间。
int main(void)
{
char *name="abcdefgh";
char *ptr=reverse(name);
//....
delete []ptr;
ptr=NULL;
return 0;
}
这样对不对?请指教!
[解决办法]
那样是对的。
当你确定不需要使用它的时候就可以delete了
[解决办法]
使用new申请的内存是堆上的,需要手动释放,在函数结构时不会自动释放,需要手动delete(ptr);
[解决办法]