«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2006

Re: Memorija.doc 1 zadatak

by Jovan Popovic
utorak, 04. jul 2006 - 08:32.

> Primetio sam dve potencijalne greske u ovom zadatku:
>
> 1. u tabeli postoje dva reda sa imenima simbola b.x i b.y koji po mom
> misljenju ovde ne treba da se jave, jer se na heap-u ne alocira prostor
> posto nemamo instrukciju b=new B;

Adrese B.x i B.y predstavljaju relativne adrese u odnosu na pocetak
objekta na heapu. Te vrednosti ulaze u tabelu simbola - ako ste radili
domaci za nivoe C i D znate kako se unose. Pravu adresu koja predstavlja
adresu objekta na heapu + ofset ne treba odrediti.
Slicno je i za parametre i lokalne promenljive funkcija. Za njihove adrese
napisite pozicije(ofsete) u aktivacionim zapisima a pravu adresu (adresa
aktivacionog zapisa na steku + adresa paramtera) ne morate ( i ne mozete
da odredite )



>
> 2. adresa loklne promenljive n (poslednji red u tabeli) je 3. Da li je to
> zato sto adresa b zauzima dve reci (adrese 1 i 2) ili je u pitanju greska?
>
Ne, to je greska treba da bude 2. Pretpostavka je da su sve promenljive
iste velicine. Greska u fajlu je ispravljena i postavljena je nova verzija
na sajt.

Ako bi se deklarisale promenljive oblika
char c; int i; long l; char chr;
pod pretpostavkom da su velicine razlicite za tipove char(1), int(2) i
long(4) adrese bi bile:
c:0
i:1
l:3
chr:7

Na ispitu ce vam biti definisano da li da pretpostavite da su sve
promenljive iste velicine ili ne.

Pozdrav,
Jovan


> Pozdrav, Rade
>