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で質問しましょう!
似たような質問が見つかりました
- その他(SNS・コミュニケーションサービス) ゲームでボイスチャットを使いたいんですが、親にどう説明したらいいですか 2 2022/08/03 14:07
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- 一眼レフカメラ 新品の標準レンズ 画角の中央当たりにゴミ?が写る。対処法は? 9 2022/09/12 08:27
- その他(プログラミング・Web制作) ZWCAD CUIXとLISPの関係について 1 2022/09/28 03:07
- プリンタ・スキャナー ブラザ-製プリンタ-DCP-J582N不具合改善アドバイス依頼 2 2022/10/17 15:40
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.netでDLLを読み込んで実行す...
-
_CRTIMPの意味は?
-
マス目上の移動のアルゴリズム
-
ポインタ版リスト構造によるス...
-
VC++6.0 Stack Overflow !!
-
最大スタックサイズを大きくす...
-
プログラムの規模を表す単位「k...
-
ubuntuで デイスク/deb/loopと...
-
パソコンでインターネット接続...
-
L2スイッチの管理VLANに...
-
hdmiはパラレル?シリアル?
-
ライン数とステップ数の違いに...
-
Octaveでのオイラー法とルンゲ...
-
「ByRef引数の型が一致しません...
-
エクセルのHLOOKUP関数の検索範...
-
サブネットマスクが255.255.255...
-
Ic-PcAn はどこのこと?
-
コンパクションとガーベジコレ...
-
[ASP]If~Else If~End If 対 Case
-
Excelでの統計処理(合計点、平...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ゆゆにゃ。
-
エラー?メッセージ
-
VB.netでDLLを読み込んで実行す...
-
printf / sprintf のスタック消...
-
スタック領域変更
-
関数のプロローグとエピローグ...
-
スタックフレームの消滅
-
逆ポーランド記法
-
マス目上の移動のアルゴリズム
-
_CRTIMPの意味は?
-
gccでスタックサイズを変更する...
-
再帰処理を非再帰処理に書き換...
-
最大スタックサイズを大きくす...
-
C言語・スタックを使用した逆...
-
C言語のリスト、スタック、キュ...
-
C言語での配列初期化について
-
情報処理の問題で理解ができま...
-
objective-c undo機能について
-
基本情報技術者のデータ構造あ...
-
再帰関数を使うとき、ソフトウ...
おすすめ情報