Si pe i nu-l initializezi? Daca l-ai declarat global e initializat cu 0, dar daca e local, atunci o sa ia o valoare random care e foarte probabil sa fie in afara vectorului.
[Later Edit]
In linia 2, tu incerci sa redimensionezi zona de memorie de la adresa 0x00000000 (NULL), ceea ce nu iti este permis.