Zdravím. Podíval jsem se na ten tvůj případ. Máš pravdu, pokud je v parametru předávání dat VAR, pak je vše v pořádku. Pokud tam není, hlásí to chybu STACK OVERRFLOW ERROR. Vysvětlení je jediné - přetečení zásobníku. Pokud při předávání parametru není VAR, pak si procedúra při jejím zavolání vytváří v operační paměti kopii proměnné. Máme ji tedy v paměti 2x - originál a kopii. A důsledek je právě v této hlášce. Jak z toho ven? Já osobně bych vytkl předávání takové sposty dat najednou. Procedúru bych umístil v cyklu a předával bych jen jednu větu. Tedy: FOR I:= Min To Max Do Begin Vypis (Mat[I]); ........ End; Ale jako příklad, že se to takto nedá dělat, je to dobré. Přeji mnoho úspěchů Ing. Miroslav Tesař tesar@zoznam.sk ----- Original Message ----- From: <bigmartin@centrum.cz> To: <servis-internet@nawebu.cz> Sent: Friday, April 26, 2002 8:47 PM Subject: PASCAL:HELP > 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 > tak mi prosim poradte > > diky moc > > martin sznapka > > -------------------- > ZDARMA a RYCHLÉ zasílání SMS z www.posliSMS.cz > > > > > > -- > -- Konference magazinu Internet -------------- servis-internet -- > -- Pravidla: http://pravidla.kab.cz ------ FAQ: http://faq.kab.cz > -- Archiv a instrukce pro odhlaseni: http://internet.nawebu.cz >
This archive was generated by hypermail 2.1.2 : 26. 04. 2002, 22:34 CEST