拿這個代碼,例如:爲什麼指向變量的指針保持有效?
int a = 1;
int b = 2;
int c = 3;
std::vector<int> myVector;
myVector.push_back(a);
myVector.push_back(b);
myVector.push_back(c);
int * b_pointer;
b_pointer = &myVector[1]
以我的經驗b_pointer
總是支持點b
即使向量可以重新分配應做起來很b_pointer
點垃圾數據。有沒有這種情況下,這將無法正常工作?
'b_pointer'不指向'b',它指向存儲在'my_vector'中的第二個元素。 –
@Captain如果我打電話給'myVector.erase(myVector.begin())','b_pointer still'有效嗎? – 0ctoDragon
'迭代器/指針/引用無效'是你正在尋找的東西。如果重新分配,'.push_back()'使指針無效。 – milleniumbug