Массив учетных данных - PullRequest
0 голосов
/ 04 июля 2011

Я разрабатываю поставщика учетных данных и учетные данные.Итак, у меня есть этот класс SampleProvider и SampleCredential.Это хорошо работает, когда я специально заявляю, что SampleProvider имеет один, два или постоянное число SampleCredential, объявив:

SampleCredential * _pCredential[2]

Но теперь я хочу, чтобы он был динамически распределен.Итак, у меня будет это:

SampleCredential * *_pCredential

А затем внутри метода SetUsageScenario() код будет считывать количество учетных данных из txt-файла и выделять его:

(*_pCredential) = new SampleCredential[numberCount];

Но это не работает.Я продолжаю получать ошибки в этой строке.Там написано

Место записи о нарушении прав доступа 0x00000000;

Вы знаете, что здесь происходит и что делать?

1 Ответ

0 голосов
/ 05 июля 2011

_pCredential, вероятно, еще не инициализирован и все еще имеет значение 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;
...