以前经常在C++/c 中听到,不能去返回局部指针。 导致现在ios,和cocos的开发都有一定的阴影。 当时对这句话的含义没有理解完全。
所谓不能返回的局部指针。这个指针指向的一定是基础数据类型,在准确点指向的数据是存放在堆栈上面的。一般情况下基础数据类型都是放在堆栈上面。函数执行完毕后当前函数的堆栈都是要被清空的。所以这个时候你返回的局部指针指向的内存就已经被释放了!
但是有时候我们还是可以返回局部指针的,程序中大多数都是这样的不是吗,cocos创建对象,ios创建对象返回的都是一个指针。 而这些数据他们其实是放在堆上面的。使用引用技术,或者其他的内存管理机制来管理这些数据。所以你反悔一个局部指针是没有任何问题的!