读书人

关于返回指向局部对象的指针的有关问题

发布时间: 2012-04-13 13:50:24 作者: rapoo

关于返回指向局部对象的指针的问题
调用一个函数:

C/C++ code
         int *func(){                  int * ip=new int(3);                  return  ip;

在调用此函数时如:int * var=func();得到的结果*var的值就是3啊!ip是在动态存储区分配的,不是在func()函数的栈中分配的,清栈的时候,是不是ip没有释放!是这样理解的吗???
那为什么书中说不要返回指向局部对象的指针????

[解决办法]
动态分配不算局部变量···
[解决办法]
准确的说,
ip本身所占用的内存在退出函数的时候,被释放了。
但是ip所指向的动态内存是不会自动释放的,需要人工释放。

读书人网 >C++

热点推荐