Итак, у меня есть этот класс, который содержит некоторые из моих объектов после их создания. Я буду ходить вас через них:Указатель указывает на NULL в векторе
темница является указателем на объект подземелий класса, который имеет некоторые DungeonLayers в векторе имени dungeonLayers который затем держит вектор имени Chambers (темница заполнена)
Когда я запустить этот код:
Game::Game(std::vector<Enemy>* e, Dungeon* d, Hero* h) {
enemies = e;
dungeon = d;
hero = h;
DungeonLayer *currentLayer = dungeon->dungeonLayers.at(0);
Chamber *currentChamber = currentLayer->chambers.at(0);
};
currentLayer и currentChamber как указывают на NULL, но dungeonLayers.at (0) заполняется DungeonLayer в «подземелье», когда я смотрю в местных жителей на контрольной точке я поставил там. Почему мой текущий слой указывает на NULL?
Я новичок в C++, поэтому я задаю этот вопрос, я мог бы сделать что-то действительно явно неправильное здесь.
И вы установили точку останова после задания, которое я надеюсь? скриншот того, что вы испытываете, будет уместным здесь. –
Попробуйте: DungeonLayer * cl = & (dungeon-> dungeonLayers [0]); – IssamTP
@IssamTP Код показывает нам, что dungeonLayers уже является вектором, содержащим указатели DungeonLayer, не нужно получать адрес из них. –