掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的配列でのメモリー不足 (ID:13500)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
皆さんこんばんは。 初歩的な質問かもしれませんが、動的配列の制限なりを 教えたいただければと思います。 var arrTemp :array of Integer; パターン1 for i := 0 to 強大な数 do begin SetLength(arrTemp,i+1); arrTemp[i] := i; end; パターン2 SetLength(arrTemp,巨大な数); for i := 0 to 巨大な数 do begin arrTemp[i] := i; end; で、実行結果 パターン1では「メモリー不足」のエラーで中断。 パターン2では正常に実行される。 といっても、上記内容では1000や10000ではどちらもエラーにはならない と思います。 実際にはRecord型の動的配列で処理した結果、パターン1で1000程度の 数ではエラーにならず大丈夫と思っていましたが、故あって5000程度の 処理を行ったところ「メモリー不足」で処理が中断してしまいました。 結果的には、パターン2に変更したらエラーはなくなりました。 どうも、「結果的には同じ処理じゃん。」と思って記述していましたが、 落とし穴がありそうです。 この辺の情報(理由・原因・注意事項)などありましたらご教授いただけれ ばと思います。 また、今回のケースはあらかじめ要素数が確定してたことも幸いしました。 現状では遭遇していませんが、万一事前に要素数が確定しない場合などは どの様に処理したらよいのかわかりません。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.