On Fri, Apr 26, 2002 at 08:47:30PM +0200, bigmartin@centrum.cz wrote: > 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 > > 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 > martin sznapka Viděl bych tady příčinu v tom, že hodnotou lze předávat pouze jednoduché datové struktury, zatím co složitější se předávají odkazem. Pokud smázneš místo, stane se z mat vlastně pole, se kterým si už Pascal poradí správně. V Pascalu jsem dlouho nedělal, řekl bych, že je to vlastnost daného kompilátoru. Pokud funguje předávání parametrů odkazem, použij ho. Není to sice úplně čisté, ale běh se tím i zrychlí. Bye Kit -- Ing. Vlastimil Pospíchal http://www.hoteldrnholec.cz
This archive was generated by hypermail 2.1.2 : 27. 04. 2002, 08:27 CEST