Hi, all.
I've been fighting a bug for a while, and when I stripped it down to its basics, I was surprised. My test program is appended.
The issue involves arrays of size > 255. When I use Ymax = Zmax = 250, the program runs fine. When I use Ymax = Zmax = 260, the portion of the program that runs in Main works fine, but the procedure stops at y = 7, z = 260 - the program hangs, with ^C ineffective.
I'm running a pentium 400 under Win98. I've had no trouble with this in small arrays, but 256 seems to be a divide of some sort.
Any suggestions appreciated. Toby
Toby Ewing Soil Scientist, Iowa State University
-------------------------------------------------------------------
Program TestLgArray;
Const Xmax = 25 ; {physical space - grid units} Ymax = 260; {physical space - grid units} Zmax = 260;
Type Compary = array[1..Ymax, 1..Zmax] of integer;
var Comp : Compary; x, y, z : integer;
{________________________________________________ } Procedure Zero;
var Comp : Compary; x, y, z : integer;
begin writeln('Procedure:'); readln; for y := 1 to Ymax do begin {zero the comp array} for z := 1 to Zmax do Comp[y,z] := 0; writeln('y=', y:3, ' z=', z:1); end; end; {________________________________________________ }
begin {Main Program} writeln('Main:'); readln; for y := 1 to Ymax do begin {zero the comp array} for z := 1 to Zmax do Comp[y,z] := 0; writeln('y=', y:3, ' z=', z:1); end; Zero; write(' done'); end.