No.5
- 回答日時:
浅い段階で潰れる==再帰ごとのスタック成長幅が大きい
ってことですよね。この主な原因はスタックに積まれるauto変数(普通の変数)です。このauto変数に対して、static宣言した変数 や new,malloc()で確保したHeap領域上の変数はスタックを成長させません。
実際には両者の複合でstaticなポインタにHeap領域上の変数を割り当てて置き、再帰を抜けたら廃棄、なんてのが多いかも。
この回答への補足
たびたび申し訳ないのですが、スタックに積まれる変数というのは、
再帰呼び出しをする関数に渡す引数のことですよね?
また、
>実際には両者の複合でstaticなポインタにHeap領域上の
>変数を割り当てて置き、
この意味は、例えば
static int *a = new int;
ということですか?
No.3
- 回答日時:
もしかして、DLL作ってませんか?
確かスタックサイズは呼び出し元のEXEから指定されるんで、DLLの設定を変えてもだめだったような・・・
この回答への補足
ご回答ありがとうございます。
プロジェクトはEXEです。けど、DLLはスタックオーバーフローとは関係のないところで使ってます。
関係しているのでしょうか?
No.1
- 回答日時:
スタックサイズを変更するのは簡単ですが、まずはそのプログラムがどうしてオーバーフローするのかを解析する必要があります。
どんなに大きくしても症状が治まらないのなら、それは無限ループにハマってしまってるんです。
それが既存のライブラリで、他のプログラムでは正常に動いているのであれば、使い方を間違っています。
ご自分で作られたのであれば、全体を見直して、バグの箇所を間違っているところを特定しましょう。
膨大な量のスタックを使用することが予め分かっているなら別ですが、そうでなければ、これを修正しないことには、危なくてしょうがないです。
ご回答ありがとうございます。
自分のプログラムでは膨大な量のスタックを利用することが予め分かっています。
しかし、バグの可能性も否定できないので、一応調べてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.netでDLLを読み込んで実行す...
-
gccでスタックサイズを変更する...
-
レジスタについて
-
printf / sprintf のスタック消...
-
フレームポインタについて
-
_CRTIMPの意味は?
-
キューとスタックの問題です、...
-
再帰関数を使うとき、ソフトウ...
-
スタックを用いて整数配列を入...
-
プログラムの規模を表す単位「k...
-
ubuntuで デイスク/deb/loopと...
-
hdmiはパラレル?シリアル?
-
ライン数とステップ数の違いに...
-
パソコンでインターネット接続...
-
エクセルのHLOOKUP関数の検索範...
-
AUTO-MDIX機能の無効化
-
L2スイッチの管理VLANに...
-
SP領域とはなんですか?
-
ニーモニックを使った命令の2進...
-
ブロック長について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.netでDLLを読み込んで実行す...
-
printf / sprintf のスタック消...
-
最大スタックサイズを大きくす...
-
_CRTIMPの意味は?
-
スタックフレームの消滅
-
スタックの伸張方向
-
エラー?メッセージ
-
スタックとキューの使い所
-
CASLとCASL2の違いについて
-
逆ポーランド記法
-
キューとスタックの問題です、...
-
再帰関数を使うとき、ソフトウ...
-
pthreadのスタックサイズ設定取...
-
再帰処理を非再帰処理に書き換...
-
二分探索木の行きがけ順走査
-
gccでスタックサイズを変更する...
-
スタックのpush/pop動作について
-
スタックを用いて整数配列を入...
-
ゆゆにゃ。
-
スタック領域変更
おすすめ情報