喫茶XRAYトップページ

[スレッド全体
]

[12172] ダメだこりゃ返信 削除
2018/8/25 (土) 10:39:55 Mr.XRAY
ダメだこりゃ

[UNITを追加したら、読み取り違反のエラーが出るようになったのですが??]
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201808/18080007.txt


[12189] 範囲外の動作テスト返信 削除
2018/8/27 (月) 09:20:02 Mr.XRAY
> [UNITを追加したら、読み取り違反のエラーが出るようになったのですが??]
> http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201808/18080007.txt


何もわからないまま,レスした方のアドバイス,提案も無視という状態で.
今回も終了 (?) でしょう.
だって,追い出しくったんですから (笑)

おそらく配列操作のミスだとは思うのですが,以下のコードでテストしてみました.
[Button1] をクリックすると [デバッガの例外通知] が何回か表示され,
フォームを閉じると [Runtime error] のダイアログが現れます.
( 範囲外のチェックなし)

質問者の最初の書き込みではアドレスが FFFFFFFX となっているので,
おそらく以下のコードとは違う,
アクセス不可の領域へのアクセスではないかと思います.

動作確認は  Windows 7 U64(SP1) + Delphi XE5(UP2) Pro VCL-32 です.


  public
    { Public 宣言 }
    FStrArray : array of string;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  Lindex : Integer;
begin
  SetLength(FStrArray, 100);

  for Lindex := Low(FStrArray) to High(FStrArray) do begin
    FStrArray[Lindex] := FormatFloat('000#', LIndex);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  LStr   : string;
  Lindex : Integer;
begin
  LStr := 'ABC';

  LIndex := High(FStrArray);
  while True do begin
    try
      FStrArray[Lindex] := LStr;
    except
      break;
    end;
    inc(Lindex);
  end;

  Memo1.Lines.Add(IntToStr(Lindex));
end;



[▼次のスレッド]
INCM/CMT
Cyclamen v3.82