一个指针的引用引发的血案
tes *ptes; tes *&gfunc(){return ptes;}
以上是全局指针
tes *ptemp = gfunc(); delete ptemp; ptemp = new tes;
这里犯了个错误,以后再次调用 gfunc访问ptes 时,东西已经清理掉了,程序崩溃;new出来的东西给到了临时指针ptemp上,内存泄露
以下为ok的写法:
1
tes *&ptemp = gfunc(); delete ptemp; ptemp = new tes;
2
tes *ptemp = gfunc(); delete ptemp; ptemp = new tes; gfunc() = ptemp;