無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
asa

無題

#1

投稿記事 by asa » 15年前

環境はWindowsXP,VisualC++2008です。
初歩的な質問ですいません。
int a[1000000000]
のようなサイズの配列を作るにはどうすればよいでしょうか?
上記の場合だと当たり前ですが、コンパイルできません。

Dixq (管理人)

Re:無題

#2

投稿記事 by Dixq (管理人) » 15年前

mallocで作れますし、intの前にstaticと付けると利用できるサイズは上がりますが、
それは本当に必要なサイズですか?

int型4バイトだとすると、それを用意するだけで4Gバイトも必要になります。
4GBも配列を用意する必要があるようなプログラムはそもそも見直すべきではないでしょうか。
単に「大きな」という意味で示されたのなら、
グローバル変数にするか、
static変数にするか、
mallocで動的に確保して下さい。
mallocの使い方はググれば沢山出てきます。

softya

Re:無題

#3

投稿記事 by softya » 15年前

1000000000個も必要かどうかは別にして本当に宣言したいなら、まず64ビット版のOSにする必要ありです。
それとコンパイラも64ビット対応版を用意しないとダメですね。実メモリも8GBぐらいは載せてください。
あとは、Dixq (管理人)さんの言われるとおりやれば大丈夫です。
処理時間を考えるとアルゴリズムの考え直しをしたほうが良い気はしますけど・・・。

asa

Re:無題

#4

投稿記事 by asa » 15年前

そうですよね。アルゴリズムを考え直してみます。

閉鎖

“C言語何でも質問掲示板” へ戻る