掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SetLengthの位置 (ID:37694)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ただチェックを有効にしないといままでそこでは止まらなかったですね。 > 普通は止まると思うのですが チェックを有効にすると、配列の範囲をはみ出していないかDelphiがいちいちチェックしてくれます。(その分オーバーヘッドがかかります) 無効にした場合、範囲をはみ出さないよう自己責任で管理しなくてはいけません。 配列の範囲をはみ出して書き込もうとした場合 *運が良ければ* そこが保護されたメモリ領域で、すぐにエラーが出ます。 *運が悪かったら* たまたまそこにあったメモリの内容(他の変数など)を書き換えてしまいますが、 OSから見れば「書き込み可能なメモリに書き込んだ」だけなので何事もなく先に進みます。 後に進んで、上書きされた変数の値を使ったりするうちに だんだん矛盾が積み重なって、やがて異状が発覚します。 エラーの原因と実際の発生箇所が離れているので、こういうバグは潰すのがそうとう厄介です。 範囲のはみ出しには注意しましょう。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.