ページ 1 / 1
無題
Posted: 2009年11月30日(月) 21:41
by asa
環境はWindowsXP,VisualC++2008です。
初歩的な質問ですいません。
int a[1000000000]
のようなサイズの配列を作るにはどうすればよいでしょうか?
上記の場合だと当たり前ですが、コンパイルできません。
Re:無題
Posted: 2009年11月30日(月) 21:50
by Dixq (管理人)
mallocで作れますし、intの前にstaticと付けると利用できるサイズは上がりますが、
それは本当に必要なサイズですか?
int型4バイトだとすると、それを用意するだけで4Gバイトも必要になります。
4GBも配列を用意する必要があるようなプログラムはそもそも見直すべきではないでしょうか。
単に「大きな」という意味で示されたのなら、
グローバル変数にするか、
static変数にするか、
mallocで動的に確保して下さい。
mallocの使い方はググれば沢山出てきます。
Re:無題
Posted: 2009年11月30日(月) 22:18
by softya
1000000000個も必要かどうかは別にして本当に宣言したいなら、まず64ビット版のOSにする必要ありです。
それとコンパイラも64ビット対応版を用意しないとダメですね。実メモリも8GBぐらいは載せてください。
あとは、Dixq (管理人)さんの言われるとおりやれば大丈夫です。
処理時間を考えるとアルゴリズムの考え直しをしたほうが良い気はしますけど・・・。
Re:無題
Posted: 2009年11月30日(月) 22:21
by asa
そうですよね。アルゴリズムを考え直してみます。