Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dziwne z tablicami.

Ostatnio zmodyfikowano 2013-11-28 15:01
Autor Wiadomość
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.
C/C++
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ź.
P-97750
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ć..
C/C++
#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).
P-97751
« 1 »
  Strona 1 z 1