掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的配列でメモリー不足の回避 (ID:150325)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
AAAAAさん、コメントをありがとうございます。 最初にそれを疑いましたし、何度も確認しています。 64ビットでコンパイル・実行しています。 因みに、三次元をX,Y,Zとして、Zのデータを半分に減らすと、エラーなくSetLengthされます。 今一度、64ビットで実行しましたが、これまでと同様でした。 type RData = Record denc : Word; od : Single; norm1 : Single; disp1 : Byte; lvl1 : Word; dose : Single; norm2 : Single; disp2 : Byte; lvl2 : Word; End; type RMTX = Record ARY : Array [ 1 .. 6 ] of RData; End; var ARY : Array of Array of Array of RMTX; と定義しています。 実行部分は、 SetLength( ARY, 512, 512, 256 ); <- OK SetLength( ARY, 512, 512, 512 ); <- NG です。 当然ながら、RData構造体のメンバを半分に減らしても、SetLength可能です。 これはメモリー上の制約になるでしょうか?(実装メモリは8GB) 今回、作成しようとしている動的配列サイズが、512x512x512x6x28=22,548,578,304≒22GB と実装メモリーの3倍近いです。 ただ、半分サイズの11GBでは問題ないので、単純に実装メモリーの問題でもなさそうに思います。 見当外れかもしれませんが、、、
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.