Forum » Programiranje » [C++] Array znotraj structa: lokacija v spominu
[C++] Array znotraj structa: lokacija v spominu
|SNap| ::
Oj!
struct NekaStruktura {
int a;
int b;
int c[40];
int d;
};
Zanima me kako bo shranjena tale struktura v spominu.
Ali bosta najprej a in b, potem pointer c in potem 40 int mest ter na koncu d, ali samo a, b, pointer c, d, dejanski array bo pa nekje zunaj?
Skratka, zanima me, če lahko kopiram podatke od začetka NekeStrukture pa do začetka+sizeof() in bom dobil celotne podatke?
struct NekaStruktura {
int a;
int b;
int c[40];
int d;
};
Zanima me kako bo shranjena tale struktura v spominu.
Ali bosta najprej a in b, potem pointer c in potem 40 int mest ter na koncu d, ali samo a, b, pointer c, d, dejanski array bo pa nekje zunaj?
Skratka, zanima me, če lahko kopiram podatke od začetka NekeStrukture pa do začetka+sizeof() in bom dobil celotne podatke?
Quikee ::
Skratka, zanima me, če lahko kopiram podatke od začetka NekeStrukture pa do začetka+sizeof() in bom dobil celotne podatke?
Boš.. podatki se shranijo skupaj.
Boš.. podatki se shranijo skupaj.
jsz ::
Shranijo se tako kot jih podaš v definiciji strukture. Torej je tisti array tudi "znotraj". To kar pa si ti omenil, da niso "znotraj" pa velja pri uporabi metod stukture (razreda).
Lp
Lp
Vesoljc ::
struc NekaStruktura { int a[43]; };
43 je taka lepa cifra
vse spremenljivke nastete v strukturi, se alocirajo ob kreiranju instance doticne strukture. ko dodamo se dinamicno alokacijo (se pravi pointerji znotraj strukture) pa potrebujemo dodatna pravila. kajti, nek kos pomnilnika, na katerega kaze pointer, ki se alocira (spremenljivka sama!) znotraj strukture, ni v footprint-u (kos pomnilnika) te strukture.
const int pmsize = 32; struct NekaStruktura { int a; int b[64]; // kje si najdu 40 :) int *pm; }; int main() { NekaStruktura ns; ns.pm = new int[pmsize]; // w00t w00t, mem leak ahead }
pointer na prvi element v polju, na katerega kaze pm, ni takoj za zadnjim elementom polja b. tam je namrec pm sam ;)
po sestih pivih sem mogoce kej zabluzil, bom zjutri popravu, ce ze...
Abnormal behavior of abnormal brain makes me normal...
Zgodovina sprememb…
- spremenil: Vesoljc ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 7330 (6403) | MrBrdo |
» | C++(bin file) vprašanjeOddelek: Programiranje | 1492 (1370) | technolog |
» | [C] kazalčni seznamOddelek: Programiranje | 3074 (2888) | MrBrdo |
» | [C] Povezani seznami in kazalciOddelek: Programiranje | 2563 (2130) | Good Guy |
» | c++: shranjevanja strukture(razreda) na disk v enem kosuOddelek: Programiranje | 1115 (1024) | rasta |