[#1]
Dlaczego kompilator nie zglasza bledu !!!!????
otoz mam nastepujacy problem:
prosta klasa:
class osoba{
public:
int jakas_liczba; //4 bajty
int tablica[]; // ile bajtow ???
};
main{
cout << sizeof((ktos));
}
dlaczego to kompiluje sie bez bledow, tzn mam na mysli dlaczego
kompilator nie wywala mi bledu o tym ze nie podalem rozmiaru tablicy
tablica[].
przeciez wcale nie alokuje jej dynamicznie, wiec kompilator musi znac
jej rozmiar przed rozpoczeciem wykonaywania programu.
wynik powyzszego kodu to:
" 4 "
a wiec tablica nic nie zajmuje w pamieci, te 4 bajty to int jakas_liczba.
ale gdy wywale ta liczbe i mam teraz taka klase:
class osoba{
public:
int tablica[]; // ile bajtow ???
};
main{
cout << sizeof((ktos));
}
to wynikiem jest:
" 8 "
moze ktos mi odpowie dlaczego tak sie dzieje i dlaczego kompilator nie protestuje podczas deklaracji tablicy jak normalnie zrobilby to podczas deklaracji w zwyklej funkcji np. main()
Dzieki
PIOTREK