Credo possa succedere all'interno di un ciclo, che l'ultima passata porti il puntatore fuori dall'area allocata, es.:
p = pBlok;
for(i=0;i<n;i++)
{
// fai qualcosa con *p
// ...
p++;
}
// all'uscita, p punta fuori
A meno che non ci siano ottimizzazioni da parte del compilatore, effettivamente il puntatore finisce per puntare fuori dall'area allocata ma, nella mia piccola esperienza, non ho mai avuto problemi con nessun compilatore.