#include <iostream>
using namespace std;
int main()
{
int *tablica;
tablica = new int [5];
for (int i=0; i<5; i++)
{
tablica[i]=50;
}
delete [] tablica;
for (int a=0; a<5; a++)
{
cout << tablica[a] <<endl;
}
return 0;
}
Cześć wszystkim! Mam pytania do powyższego kodu.
Dlaczego po linii "delete [] tablica;" jestem w stanie odczytać tablicę za pomocą pętli for, skoro powinna ona już nie istnieć w pamięci?
Mówiąc dokładniej, jestem w stanie częściowo odczytać tablicę, ponieważ dwie pierwsze szufladki gubią się po instrukcji delete. W dwóch pierwszych szufladkach po odczycie znajdują się losowe liczby, zapewne śmieci systemowe. (W przypadku, gdy pętla odczytująca znajduje się przed instrukcją delete, oczywiście program zachowuje się poprawnie i odczytywane są wszystkie szufladki poprawnie)
Jeszcze mam dodatkowe pytanie dotyczącej zmiennej int i. Czy jest ona widoczna tylko wewnątrz pętli? Czy mogę w drugiej pętli użyć tej samej nazwy zamiast int a?
Z góry dziękuję za odpowiedź!