He all
I'm looking at very simple examples of parameter passing, using an array. When I pass the array rolls to the procedure initArray, and watch the elements get updated, something strange happens! When Values[1] becomes 3, Rolls[1] stays at zero and Rolls[2] becomes 3 instead. The two arrays seem out of sink by 1 as each element is updated. I've clearly done something wrong here. Could anyone point out the error of my ways, please?
program lookatarrays;
uses
sysutils, crt;
const
maxValue = 4;
var
rolls :array [1..maxValue] of Integer;
procedure initArray(var values:array of integer;maximum:integer);
var
counter : integer;
begin
for counter := 1 to maximum do
begin
values[counter]:= 3;
end;
end;
procedure writeArray(values:array of integer;maximum:integer);
var
counter : integer;
begin
for counter := 1 to maximum do
begin
writeln(values[counter]);
end;
end;
begin
initArray(rolls,maxValue);
{writeArray(rolls,maxValue);}
readln();
end.