» »

[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
658254 (7327) MrBrdo
»

C++(bin file) vprašanje

Oddelek: Programiranje
121662 (1540) technolog
»

[C] kazalčni seznam

Oddelek: Programiranje
123401 (3215) MrBrdo
»

[C] Povezani seznami in kazalci

Oddelek: Programiranje
242719 (2286) Good Guy
»

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

Oddelek: Programiranje
61226 (1135) rasta

Več podobnih tem