Код:класса Указатель Указатель
Block** blockArray = new Block*[numBlocks];
for (int i=0; i<numBlocks; i++)
{
fin >> a >> b;
blockArray[i]->setPosX(a);
blockArray[i]->setPosY(b);
}
Издание:
Когда blockArray Кодекса Hit в [я] -> setPosX (а); выдает необработанное исключение. В частности:
Unhandled exception at 0x00BF45FB in Nglarsen.Hmwk.3.Assignment.exe: 0xC0000005: Access violation writing location 0xBAADF00D.
Единственный способ, которым я был в состоянии обойти это:
Block** blockArray = new Block*[numBlocks];
for (int i=0; i<numBlocks; i++)
{
blockArray[i]=new Block[1];
for(int j=0;j<1;j++)
{
fin >> a >> b;
blockArray[i][j].setPosX(a);
blockArray[i][j].setPosY(b);
}
}
Но я знаю, что есть лучший способ, которым я просто забыть что-то здесь. Заранее спасибо
Вы разыскиваете неинициализированные указатели в первом случае: 'blockArray [i] -> setPosX (a);'. Почему вы используете 'new' вообще? Я бы предпочел использовать 'std :: vector'. –