» »

[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?

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.

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

Fury ::

Tako kot si napisal, samo da ni pointerja. Na pNekaStruct+sizeof(int)*2 bo prvi element c.

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] struct in int[] (strani: 1 2 )

Oddelek: Programiranje
657382 (6455) MrBrdo
»

C++(bin file) vprašanje

Oddelek: Programiranje
121508 (1386) technolog
»

[C] kazalčni seznam

Oddelek: Programiranje
123108 (2922) MrBrdo
»

[C] Povezani seznami in kazalci

Oddelek: Programiranje
242571 (2138) Good Guy
»

c++: shranjevanja strukture(razreda) na disk v enem kosu

Oddelek: Programiranje
61128 (1037) rasta

Več podobnih tem