我想在游戏中制作一个商店和一个库存,但是我的代码不断崩溃。我的程序崩溃在addToInventory-> addInventoryItems(name);我不知道为什么。我不明白为什么我的矢量不能推回
// inventory.h
struct InventoryItems
{
string type;
};
vector<InventoryItems*> inventoryItems;
// inventory.cpp
void Inventory::addInventoryItems(string itemName)
{
addItem->type = itemName;
inventoryItems.push_back(addItem);
}
// shop.h
Inventory* addToInventory;
// shop.cpp
void Shop::purchase()
{
string name = touchableSprites[i]->getSprite()->getName();
addToInventory->addInventoryItems(name); //crashes here
}
非常感谢!
你在哪里分配'addToInventory'? – NathanOliver
分配了“addToInventory”在哪里?我看到的只是一个声明的指针,它在哪里分配为'new'ed?因为它有一个单位化的指针,并且访问这个结果会导致未定义的行为或访问冲突 – EdChum
请提供一个[mcve]代码中有许多未知数,最显着的是'addItem' – user463035818