Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 30.06.2008., 17:41   #1
WeD@
Space Cadet
 
WeD@'s Avatar
 
Datum registracije: Feb 2005
Lokacija: Split<-->Vela Luka
Postovi: 592
pitanje za ispit :-)

pozdrav, imam jedno pitanje, iz operacijskih sustava :

Objasnite zašto se varijable tipa klase (tj objekti) obično alociraju na heap-a za razliku od varijabli nekog buit-intipa (npr. Integer , char....)

bilo bi super ako netko zna da napise do sutra, kad mi je ispit, thx :-)
__________________

e4300@3.2, 965p-ds3 rev 3.3, (kingmax 667 ddr2 1gb)x2
9600gso 768mb, 1tb wd, 500gb wd, sb live!
fortron 500w


WeD@ je offline   Reply With Quote
Staro 01.07.2008., 02:21   #2
munst0r
Premium
Moj komp
 
munst0r's Avatar
 
Datum registracije: Mar 2004
Lokacija: Bjelovar/Zagreb
Postovi: 357
Objekti se stavljaju na heap jer su preveliki za stog. Naime, stog je ogranicene velicine.

Varijable primitivnih tipova zauzimaju veoma malo mjesta pa mogu na stog. Objekti mogu biti ogromni (tisucama puta veci od npr. nekog inta) pa idu na heap, dok se na stog pohrani samo referenca na objekt.


Vjerojatno postoji jos neki razlog, ali ovo je valjda jedan od glavnih...
munst0r je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 01.07.2008., 03:51   #3
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
a zasto je stog ogranicene velicine?
sto se nemoze stog implementirat pomocu liste, pointera, neceg vec?
nagadjam da idu na heap zbog funkcija koje se koriste (tj mogli bi na stog ako ti odgovara redosljed ubacivanja izbacivanja i slicno), mozda je bitno to sto je hrpa sortirana,.. uglavnom najvaznije je sto ces poslije raditi sa tim objektima...
rodney je offline   Reply With Quote
Staro 01.07.2008., 04:06   #4
munst0r
Premium
Moj komp
 
munst0r's Avatar
 
Datum registracije: Mar 2004
Lokacija: Bjelovar/Zagreb
Postovi: 357
Citiraj:
Autor rodney Pregled postova
a zasto je stog ogranicene velicine?
sto se nemoze stog implementirat pomocu liste, pointera, neceg vec?
nagadjam da idu na heap zbog funkcija koje se koriste (tj mogli bi na stog ako ti odgovara redosljed ubacivanja izbacivanja i slicno), mozda je bitno to sto je hrpa sortirana,.. uglavnom najvaznije je sto ces poslije raditi sa tim objektima...
Ti pricas o necemu skroz drugome...

WeD@ovo pitanje se odnosilo na sistemski stog, odnosno sistemski heap, a ne o nekoj vlastitoj programskoj implementaciji stoga/heapa.

Npr. dok ti u programu napises:

int a = 1;

Gdje se ta vrijednost pohranjuje? Odgovor je na stog. Ali ne neki tvoj stog realiziran poljem, listom ili koznacime nego sistemski stog koji je jedinstven za cijeli proces, a njegova realizacija ovisi o operacijskom sustavu.
munst0r je offline   Reply With Quote
Staro 01.07.2008., 08:19   #5
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
ups....
rodney je offline   Reply With Quote
Staro 01.07.2008., 10:01   #6
WeD@
Space Cadet
 
WeD@'s Avatar
 
Datum registracije: Feb 2005
Lokacija: Split<-->Vela Luka
Postovi: 592
Mislim da je ovo ok odgovor za ispit, hvala :-)
__________________

e4300@3.2, 965p-ds3 rev 3.3, (kingmax 667 ddr2 1gb)x2
9600gso 768mb, 1tb wd, 500gb wd, sb live!
fortron 500w


WeD@ je offline   Reply With Quote
Staro 03.07.2008., 10:29   #7
Dancho
Registered User
 
Datum registracije: Jun 2007
Lokacija: cro
Postovi: 42
jedan od razloga je i taj da se nezna broj objekata za vrijeme kompajliranja(compile-time) nego se on dozna za vrijeme startanja programa(run-time) bilo od strane korinika(user input) ili neki drugi način,
dakle onda se radi o dinamičkom alociranju memorije koja nije na stacku nego na heap-u.
C za to koristi:malloc(),realloc(),free()
C++:new,delete
Jos jedna bitna stvar je da se alocirana memorija ne briše sama (program exit ili out of scope) vec je programer sam odgovoran za to( free() ili delete)...

later..
gl..
Dancho je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na