拿这个代码,例如:为什么指向变量的指针保持有效?
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