Wpis z mikrobloga

W przypadku takiej samej nazwy kompilator rezerwuje pamięć pod tym samym adresem?


@Parseval: może tak być, ale to jest nie istotne. Korzystanie z tablicy, której wartości nie zostały wcześniej zainicjalizowane prowadzi do niezdefiniowanego zachowania i jest błędem. Nie interesuje cię, co znajduje się w tablicy po jej stworzeniu, bo może tam być cokolwiek. Powinieneś ją czymś wypełnić, np. zerami, po stworzeniu żeby jej zawartość miała sens.
@Parseval: Ta tablica jest alokowana na stosie, więc w tym wypadku zawsze zajmie to samo miejsce co przed dealokacją. Na przykład gdybyś stworzył zmienną uint8_t przed ifem to wartości nowej tablicy byłyby przesunięte, ponieważ została zaalokowana o jeden bajt dalej. Undefined behaviour pojawia się kiedy jakaś operacja nie została zdefiniowana przez standard, wtedy pozostawia się to w kwestii twórców kompilatorów. Więc jak się zna dobrze co siedzi pod spodem, to nie