0

資格情報プロバイダと資格情報を作成しています。だからこのクラスはSampleProviderSampleCredentialです。資格情報の配列

SampleCredential * _pCredential[2] 

しかし、今、私はそれを動的に割り当てることにしたい:私は、具体的SampleProviderは1、または2、または宣言しSampleCredentialの一定の数を、持っていることを宣言するとき、それはうまく動作します。だから私は、この必要があります:

SampleCredential * *_pCredential 

をそして方法SetUsageScenario()内で、コードはtxtファイルから資格証明書の数を読んで、それを割り当てます。

(*_pCredential) = new SampleCredential[numberCount]; 

しかし、それは動作しません。私はその行に誤りを続けています。それは言う

アクセス違反書き込み場所0x00000000;

あなたはここで何が起こるのか知っていますか?

答えて

0

_pCredentialはまだ初期化されておらず、まだNULLです。 NULLポインタを "(* _pCredential)"を介して逆参照しようとすると、アクセス違反が発生します。

多分あなたはこれを行うことを意味しましたか?

_pCredential = new SampleCredential*[numberCount]; 

これは、SampleCredentialオブジェクトへのポインタの配列を割り当てます。次に、このように各SampleCredentialオブジェクトを割り当てることができます:あなたが完了したら

_pCredential[0] = new SampleCredential(); 
// etc. 

がメモリを解放することを忘れないでください:

for (int i = 0; i < numberCount; i++) { 
    delete _pCredential[i]; 
} 
delete [] _pCredential;