Diskuze: Struktura - uložení v paměti
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Ano, kód fungovat bude. Standard zaručuje, že proměnné definované později mají vyšší adresu.
Bude to fungovat, pokud budou typy ve struktuře identické a dodrží se pořadí:
struct A
{
int X;
char Y;
long Z;
double W;
};
struct B
{
int R;
long S;
char T;
double U;
};
U příkladu výše budou X a R na stejném offsetu, ale W a U už budou na různých offsetech.
Další věcí je, že je to hodně nebezpečné, snadno můžeš zapomenout, že struktura v paměti je jiná, než typ, se kterým zrovna pracuješ. Lepší je využít uniony nebo třetí strukturu:
union AB
{
struct A a;
struct B b;
};
// nebo
struct C_AB
{
int XR;
};
Zobrazeno 3 zpráv z 3.