0

Delphiについて別の質問がありTListます... 別の TList をコンソールに出力した後、以前と同じように、TList にアクセスするときに EArgumentOutOfRangeException が発生します。

以下の元のコードをコピーして貼り付けました-1行も変更していません

Writeln('c: '+inttostr(closed.Capacity)+' |l. 281');
  for i := 0 to open.Capacity-1 do
  begin
    Writeln('open: ' + open[i].startpunkt + open[i].endpunkt +
      IntToStr(open[i].kantenbewertung));
  end;
  Writeln('c: '+inttostr(closed.Capacity));
  Writeln('closed.capacity: '+inttostr(closed.Capacity));
  for i := 0 to closed.Capacity-1 do begin
  Writeln('closed: ' + closed[i].startpunkt + closed[i].endpunkt +
      IntToStr(closed[i].kantenbewertung));
  end;

-loopもWriteln('c: '+inttostr(closed.Capacity)+' |l. 281');コンソールに明確に出力さfor i := 0 to open.Capacity-1 do beginれます。

コンソール出力: c: 2 |l. 281 オープン: AC3 オープン: BC4 オープン: CD6 - そして、エラーメッセージがあります

Dijkstra の alg の実装の一部であるはずです。これが役立つ場合。

誰も私がしていない間違いを見つけますか? それとも、これは奇妙な特殊なケースですか?

4

1 に答える 1

3

Capacityは実際の と同じではありません (大きくなる場合もあります) Count

于 2012-11-07T12:14:33.360 に答える