Nazdar,
Friday, April 26, 2002, si napisal:
> dobry den
> potrebuju helfnout s pascalem
> nevim proc mi tenhle programek nejde (runtime error):
> program e;
> type rec=record
> cislo:0..200;
> misto:string;
> end;
> matice=array[1..200] of rec;
> var mat:matice;
> procedure vypis({var} m:matice);
> begin
> writeln('hello');
> end;
> begin
> vypis(mat);
> readln;
> end.
> jedna se prave o ten var, pokud je totiz matice pouze vstupni
> pak mi cely program haze error
> pokud vstupne-vystupni je vse OK
Asi "vstupni" myslis volane hodnotou a "vstupne-vystupni" volane
odkazom.
> v tom vsak problem nevidim - nebot pokud matice bude pouze
> vstupni a
> umazneme z typu rec napr misto, pak cely prog jede bez problemu
> napada me pouze nejake omezeni ze strany pameti, ale jelikoz o
> tom nevim
> tak mi prosim poradte
Mas pravdu, bude to pametovou narocnostou. Pri volani hodnotou sa ten
vstupni paramater kopiruje do lokalnej premennej procedury, teda je v
pameti 2x. Pri volani odkazom sa pouziva premenna ktoru mas v
skutocnych parametroch.
Nasvedcuje tomu aj to ze ked das:
matice=array[1..20] of rec;
teda 20 miesto 200 prvkov pola, tak to funguje obidvoma sposobmi.
Riesenie: pouzivaj dynamicke datove struktury tvorene pointrami.
--
S pozdravom,
Michal Bilcik (ICQ# 156366308)
This archive was generated by hypermail 2.1.2 : 26. 04. 2002, 23:51 CEST