众所周知,在、C++中是不能返回局部指针的,因为指针所指向的对象是局部的,出了函数就要消失,那么返回的指针将是野指针了。如:
CXXX* ReturnPtr()
{
CXXX* ptr = NULL ;
ptr = .... ;
return ptr ;
}
解决办法之一就是 把ReturnPtr作为类的成员函数,返回类的对象的指针,这样出函数后指针所指向的对象还是存在的,如:
class CPtr
{
private:
CXXX* m_ptr ;
public:
CXXX* RetrunPtr() ;
}
CXXX* CPtr::ReturnPtr()
{
CXXX* ptr = NULL ;
ptr = m_ptr ;
return ptr ;
}
方法之二:返回传进来的指针,这样作用域也不会消失,如:
CXXX* ReturnPtr (CXXX* ptr)
{
ptr = ....// 对ptr进行一些处理
return ptr ;
}
如果后面还有其它的方法我会继续补充,如果大家还有更好的方法或情况,欢迎留言。