o ponteiro para um elemento do vetor trava
vector<int> v;
v.push_back(1);
int * p = &v[0];
for (int i = 2; i <= 100; ++i)
{
v.push_back(i);
}
*p = 5;
Eu sei que o vetor realocou um novo pedaço de memória para aumentar a capacidade, mas p é apenas um ponteiro para algum endereço de memória ep em si não mudou. Também a memória apontada por p está no espaço de endereço do mesmo processo, mesmo após o vetor ser realocado. Por que iria falhar?