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?

questionAnswers(1)

yourAnswerToTheQuestion