指针作为参数传递,是将指针地址的值传入,函数内对指针地址的操作在函数结束后并不会改变指针指向的内容,在函数中应该对指针指向的内容操作,如果是创建新对象,则需传入指针的引用或指针的指针。
class MyClass { public: MyClass() {}; ~MyClass() {}; private: }; MyClass* ggg() { return new MyClass; } void getptr(MyClass*& ptr) { ptr = ggg(); } int main() { MyClass* ptr = nullptr; getptr(ptr); delete ptr; }