• 締切
  • すぐに回答を!

スタック領域変更

  • 質問No.4364809
  • 閲覧数1528
  • ありがとう数0
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 12% (20/162)

Stack overflow エラーが発生したので、スタック領域を拡張しようと思い、ネットで調べたのですが、その設定画面が自分の持っているやつにはありませんでした。
自分のは
Microsoft Visual C++です。
スタック領域変更の仕方教えて下さい。

回答 (全3件)

  • 回答No.3

ベストアンサー率 71% (1325/1856)

開発統合環境(IDE)から実行されているのではないのでしょうか
それとも出来上がったEXEを エクスプローラ等から起動しているのでしょうか

前者なら、F5キーによる実行ならエラー発生時にIDEのデバッガが起動するはずです
  • 回答No.2

ベストアンサー率 71% (1325/1856)

0x1e8480は16進数で表現されているということですよ

2,000,000バイトです つまり 1.907MB(1953.125KB)です
Windowsの電卓を起動して 表示 > 関数電卓
表示 > 16進 として 1e8480 を入力
表示 > 10進
とすれば 10進数に変換した値を表示してくれます

デバッグ実行しているならエラーで停止した時点で呼び出し履歴をチェックしてみましょう
補足コメント
BOY12345

お礼率 12% (20/162)

デバッグ実行の仕方がわかりません。
以前やろうとしましたが、意味が分からず・・
投稿日時:2008/09/29 20:03
  • 回答No.1

ベストアンサー率 71% (1325/1856)

VC++でも VC6/2003/2005/2008などいろいろなバージョンがあります

プロジェクトの設定画面のリンカー関連に『スタックサイズ』といった項目があります
コンパイラのバージョン、エディションなどを明記しましょう

コマンドラインオプションなら /STACK:希望のサイズ になるでしょう
希望のサイズはバイト単位で指定します

本当にスタックの不足なのでしょうか
プログラム的にバグがあり期待しないところで再帰がかかっていてスタックを食いつぶしていることも考えられますよ
補足コメント
BOY12345

お礼率 12% (20/162)

さっそくのご解答有難う御座います。

変更する場所は、設定内をいろいろ見ていたら見付けることができました。スタック領域を変更しようと思い、いじりました。

予約とコミットには、0x1e8480と設定されていました。
これを最大にすればまぁスタック領域エラーはでないだろうと思い、
最大値の9294967295を入力しました。
しかしながら、相変わらずスッタクエラーが・・・
ご指摘の通り、プログラムのどこかで食いつぶしが生じていると考え、コードを見直しています。

ところで、0x1e8480とは何kBでしょうか?
単位はkBで、16進法なので、
16^(8480)kBと読めばいいのでしょうか?少々自信がありません。
投稿日時:2008/09/29 14:14
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ