【问题标题】:Is it possible to have a pointer to a pointer point to the variable pointed by the first pointer?是否可以有一个指向第一个指针指向的变量的指针的指针?
【发布时间】:2013-03-17 18:17:04
【问题描述】:

这行得通吗:

Class MyClass{

public:
    void Foo();

private:
    MyClass** ppMyClass;

};

MyClass* pMyClass = new MyClass;

ppMyClass = &pMyClass;

delete pMyClass;

ppMyClass-> Foo();

如果它不起作用,将指针分配给指针并使用它来访问它指向的类的函数的正确方法是什么?问题是,我想知道那里的错误是否是由内存泄漏引起的:Why do I get the WSAENOTSOCK error in this code?

那么,这样行吗?

【问题讨论】:

  • 不,ppMyClass->Foo(); 不能工作,因为 ppMyClassMyClass** 而不是 MyClass*
  • 此外,*ppMyClassdelete 之后的悬空指针...
  • 任何人都知道为什么链接中的代码不起作用?至少,您在上面链接的代码中看到内存泄漏了吗?
  • 内存链接?许多链接。很多
  • 严重的是:内存泄漏(甚至链接)不会中断链接器进行链接工作。不,那里没有泄漏

标签: c++ oop pointers memory dynamic


【解决方案1】:

不,ppMyClass->Foo(); 不能工作,因为 ppMyClassMyClass** 而不是 MyClass*

理论上你可以做(*ppMyClass)->Foo(),尽管在你的特定代码sn-p中,这将是未定义的行为,就像你之前的deleted pMyClass一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2011-05-17
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    相关资源
    最近更新 更多