有这样一个 函数
struc1 * s()
{ struc1 * a;
a= new struc; //分配内存
............... return a ; //函数返回a
}
不能在return前销毁指针吧,
在return后销毁也无效,请问在哪里销毁指针呢?c++能自动销毁吧
struc1 * s()
{ struc1 * a;
a= new struc; //分配内存
............... return a ; //函数返回a
}
不能在return前销毁指针吧,
在return后销毁也无效,请问在哪里销毁指针呢?c++能自动销毁吧
对p进行处理.
处理完
delete p;
因为a 是在堆里面分配的内存,它有和进程一样的生存期,因此,返回的指针是有效的。
同意 he_zhidan(何志丹:壮志在我心) 的意见。
========================================
a被释放
但指针a指向的内容没有被释放