0

小さな配列と mpir の浮動小数点数の場合、エラー メッセージは表示されませんが、非常に大きな配列を作成したい場合に発生します。>100,000,000 と言うと、次のエラー メッセージが表示されます。

GNU MP: メモリを割り当てられません (サイズ = 16) 続行するには何かキーを押してください。. .

残念ながら、2 つの大きな配列が必要です。1 つはサイズ 100,010,000 で、もう 1 つはサイズ 1,000,100 です。これは Windows 64 ビット マシンで可能ですか?

メモリから配列の一部をクリアする方法はありますが、(MPIR で) 配列全体ではなく、スペースを作成する方法はありますか?

4

1 に答える 1

0

配列の要素はメモリ内に連続して出現する必要があるため、1 つの配列に多くのメモリを正常に割り当てることはできません。ヒープの現在の状態でそのようなことが許可される可能性はほとんどありません。

システム上の のサイズが の可能性が高いfloat配列について話していると仮定すると、400MB のメモリを割り当てることができる唯一の方法は、占有されていない4 億個の連続したメモリ アドレスが存在する場合です。float4

編集:不可能だと言っているのではなく、信頼できないと言っているだけです。

編集2:解決策は、メモリをチャンクで割り当てることです。1 億の float の 1 つの配列の代わりに、100 万の float のグループに割り当てることができます。400MB の 1 つのチャンクではなく、4MB の 100 のチャンクを割り当てることができる可能性がはるかに高くなります。

于 2013-03-27T19:05:56.257 に答える