No.3ベストアンサー
- 回答日時:
2Mの配列を宣言というと
void method(){
char a[20000000];
....
}
という感じでしょうか。
C/C++言語のメモリは、大きく4つに分かれます。
(1)コード(プログラム)が記録されている領域。
(2)静的記憶領域。(文字列リテラル等が記憶されている領域)
(3)スタック領域。
(4)ヒープ領域。
(1)、(2)はこの際関係ないので置いといて、
関数やメソッドの中でふつうに(staticをつけずに)
変数を宣言したとき、そのデータはスタック領域に置かれます。
これに対し、関数の外(グローバル変数)の変数、
static宣言した変数、malloc()で確保したメモリ、
newで作成したオブジェクトは、
ヒープ領域に置かれます。
スタック領域とヒープ領域を比べた場合、
ヒープ領域の方がはるかに大きいのです。
その代わり、スタックの方が効率的にアクセスできるようになっています。
スタック領域は一等地なのです。
山手線沿線に飛行場が作れないのと同じで、
スタックにあまり大きなメモリを確保することは出来ません。
なので、関数・メソッドの中の非static変数(自動変数)に
大きなメモリ領域を確保するのはタブーになっています。
この回答へのお礼
お礼日時:2006/05/28 22:02
まさに知りたいことで、勉強になります。
スタックとヒープがごっちゃになっていました。
回答いただいたようなことだったんですね。
ありがとうございました。
No.4
- 回答日時:
コンパイラ、リンカのオプションに「スタック サイズの設定」というのがありませんか?
VC++.NET は未確認ですが、VC++ 6.0はMSDNのCD-ROMを見るとデフォルト値が1MBとされているようです。
コンパイラ、リンカのオプションでスタックサイズを大きめにするのも1つの対応ではあります。
C++であればnew演算子を使った方が良いと思います。
この回答へのお礼
お礼日時:2006/05/28 21:57
オプションがあるんですね。
ちょっと今探しても見つからなかったのですが、
6.0にあるならNETにもあると思いますのであとでもう少し探して見ます。
ありがとうございました。
No.1
- 回答日時:
UNIXなら、1プロセスが確保できるメモリがカーネルパラメータで定義されてるのですが。
windowsは、うーん、msdn探してみるとかですか。
参考URL:http://docs.hp.com/ja/B3920-90093/ch08s05.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C++のCopyFileでメモリが増える
-
C言語で、メモリを解放しないで...
-
取ってこれないメモリのはずのm...
-
メモリの解放の仕方
-
HEWでのビルド
-
【C言語】再帰が時間がかかる...
-
エクセルVBA 大容量CSVファイル...
-
Visual Studioのメモリリークに...
-
エクセルのメモリ使用状況/Appl...
-
大容量のメモリ確保をスワップ...
-
メモリ不足
-
大きな配列を使うには?
-
C言語における再帰呼び出しの...
-
ファイルマッピング関数で失敗
-
FLASH Lite1.1 背景の表示エラ...
-
<jsp:include>の属性、flushに...
-
C#のOutOfMemoryException発生...
-
移動可能メモリ
-
エクセル キャッシュメモリー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
メモリ不足
-
C言語における再帰呼び出しの...
-
「ヒープサイズの設定」て何?
-
動的メモリとexit(C言語)
-
大容量のメモリ確保をスワップ...
-
エクセルのメモリ使用状況/Appl...
-
【C言語】再帰が時間がかかる...
-
バッチファイルでの実行EXEのメ...
-
メモリのセグメント違反の解決...
-
「memcpy」と「strcpy」について
-
ExcelのVBAでメモリ解放できない
-
これて逆じゃないですか?
-
メモリを解放しないとどうなる?
-
ファイルマッピング関数で失敗
-
エクセルVBA 大容量CSVファイル...
-
メモリアロケーション異常の発...
-
エクセル キャッシュメモリー...
-
ReadEventLogについて
おすすめ情報