【发布时间】:2015-09-14 17:07:27
【问题描述】:
std::vector <Item*> itemSlot;
itemSlot.resize(1);
Item testItem;
testItem.item_id = 99;
*itemSlot[0] = testItem; // ERROR
std::cout << "ID: " << itemSlot[0]->item_id << std::endl;
为什么会出错?
我知道我可以做到:
itemSlot[0] = &testItem;
但我不想这样做,因为如果我在函数中创建项目并在函数中分配它,如果我在函数外部调用 itemSlot[0]->item_id,它会给我随机数,因为变量 item 会被销毁,并且指针不会指向任何东西。
【问题讨论】: