[#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
[#2] Re: Dlaczego kompilator nie zglasza bledu !!!!????

@Piotrek, post #1

A jaki to kompilator?
[#3] Re: Dlaczego kompilator nie zglasza bledu !!!!????

@Jacek Rzeuski, post #2

borland builder 6.0
[#4] Re: Dlaczego kompilator nie zglasza bledu !!!!????

@Piotrek, post #3

Co ma wspólnego Borland Builder 6.0 z Amigą?

[#5] Re: Dlaczego kompilator nie zglasza bledu !!!!????

@Piotrek, post #1

Dlatego ze tak tez mozna oznaczyc wskaznik wskazniki i tablice w c to to samo :D

4 bjaty bo taka jest wielkosc wskaznika :)

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem