c/c++内存释放问题
我想定义一个char*函数,返回可能会比较长的动态字符串,所以就动态malloc/new空间,如果我直接return str;后会不会自动把这个malloc/new释放掉?
如果不行还有什么好的办法吗?因为怕char*指向原来的str的时候,再把str free/delete掉会造成这部分出错
[解决办法]
malloc/new分配来的堆空间,必须用free/delete释放,不会自动释放
[解决办法]
C中自个申请的内在必需自修释放
[解决办法]
c++中也可以用智能指针
[解决办法]
不会自动释放的。
你可以写个配对的函数,如:
char* CreateString(...);// 在这里面动态分配内存
DestoryString(char *str); // 这里传入上面函数返回的指针,销毁内存