0

これはうまくいきますか:

Class MyClass{

public:
    void Foo();

private:
    MyClass** ppMyClass;

};

MyClass* pMyClass = new MyClass;

ppMyClass = &pMyClass;

delete pMyClass;

ppMyClass-> Foo();

それが機能しない場合、ポインターをポインターに割り当て、それを使用して、それが指すクラスへの関数にアクセスする正しい方法は何ですか? 問題は、メモリ リークが原因でエラーが発生したかどうか疑問に思っていることです。このコードで WSAENOTSOCK エラーが発生するのはなぜですか?

それで、それはうまくいくでしょうか?

4

1 に答える 1

2

いいえ、ではなくのままではppMyClass->Foo();機能しません。ppMyClassMyClass**MyClass*

理論的(*ppMyClass)->Foo()には を実行できますが、特定のコード スニペットでは、直前に行ったようにdelete未定義の動作になります。pMyClass

于 2013-03-17T18:20:49.703 に答える