Pytania z serii "rozmowa kwalifikacyjna"
jaka jest różnica między poniższymi deklaracjami tab
int function(int tab[])
{
...
}
struct SomeStruct_T
{
int tab[];
};
Odpowiedz:
deklaracja w parametrze funkcji nie alokuje pamięci na stosie, jest ona równoważna z deklaracja function(int *tab)
deklaracja w strukturze również nie alokuje pamięci ale dostęp do pola tab będzie się odbywał poprzez referencje do pamięci znajdującej sie bezpośrednio za struktura, w ten sposób można tworzyć np tablice o zmiennej długości pamiętając o alokowaniu odpowiedniej ilosci pamięci, np na stercie.
jaka jest roznica miedzy poniższmi deklaracjami field
struct SomeStruct
{
union field
{
int a;
};
}
struct SomeStruct
{
union
{
int a;
} field;
}
Odpowiedz:
pierwsza to czysta deklaracja unii o nazwie field, struktura nie allokuje przestrzeni na zadne pole
druga to deklaracja pola field o typie unii anonimowej, struktura będzie miała rozmiar sizeof(int)
Brak komentarzy:
Prześlij komentarz