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