Dziwne z tablicami.
Ostatnio zmodyfikowano 2013-11-28 15:01
maciek2242 Temat założony przez niniejszego użytkownika |
Dziwne z tablicami. » 2013-11-28 14:56:24 Nie wiem jak to się dzieje ale jak deklaruję tablicę. To mogę pracować na elementach nie zadeklarowanych. Taki kod mi działa. int main() { int tab[ 2 ]; tab[ 4 ] = 4; std::cout << tab[ 4 ]; return 0; } Oczywiście wiem, że tablice zachowują się tak samo jak wskaźniki ale nie wiem po co w takim razie pokazywać jak długa ma być tablica skoro można nagiąć tą regułę. Proszę o dosyć szczegółową odpowiedź. |
|
pekfos |
» 2013-11-28 15:01:00 Wyjście poza tablicę ma niezdefiniowane zachowanie. Tak mówi standard C++. Poza tablicą są inne dane, często bardzo ważne do prawidłowego działania programu, więc lepiej tam nie grzebać.. #include <cstdio>
void f() { puts( "UB!" ); }
int main() { void * t[ 1 ]; t[ 4 ] =( void * ) f; } UB!
Zachowanie jest niezdefiniowane, ale u mnie program wypisuje ten tekst (a potem się wysypuje). |
|
« 1 » |