On 25 mei 2005, at 12:06, chromdildo wrote:

     msn          : array [0..9] of Tchange_string;
     port         : array [0..9] of Tchange_string;

This array goes from 0 till 9

  for ic:= 1 to 10 do begin
      Eumex1.Memory.msn[ic].value := '';
      Eumex1.Memory.msn[ic].changed := false;
      Eumex1.Memory.port[ic].value := '0';
      Eumex1.Memory.port[ic].changed := false;
  end;

And here you go from 1 to 10. The reason it doesn't crash in one case and that it does crash in another case, is due to alignment differences (in the "crash case", your record is bigger, so there is more chance you will write beyond the boundary of allocated memory).


Jonas


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to