0
program s;
  type info = record
       name, surname: string;
       min, sec: integer;
  end;
  arrays = array[2..50] of info;

  var A: arrays;
begin
  A[1].name := 'name';
end.

それの何が問題なのですか?範囲チェックエラーが発生し、それが何であるかわかりません。

4

1 に答える 1

6

インデックス 2 から 50 までの配列を作成しているため、エラーが発生します。

したがって、アクセスできる最初の要素は 2 になります。

begin
  A[2].name := 'name';
end.

範囲チェック エラーは、無効な位置 (したがって、範囲外) で配列にアクセスしようとしていることを意味します。Pascal は、他の言語とは異なり、これを行うとコンパイル エラーをスローします。

于 2010-05-16T16:08:13.680 に答える