プロが教えるわが家の防犯対策術!

VB2008 C# でプログラムしていますが、
プログラムで再帰を多く行わなくてはならず、
スタックオーバーフローが出てしまいます。

スタックオーバーフローを解決するためには、アルゴリズムを変更し、
再帰の回数を減らすしか方法はないのでしょうか?

もしスタックの上限を変更する方法などがありましたら教えてください。

VBは初心者なので、なるべく簡単にお願いします。

A 回答 (4件)

プロでもなく、C#の経験もないので、私の出る幕ではないと思いましたが、似たような質問をされた方がいらっしゃるようです。

もしかしたら参考になるかもしれません。
http://oshiete1.goo.ne.jp/qa2438590.html

アマチュアの私には、アルゴリズムを変えるか、引数や局所変数を減らす、ぐらいしか思いつきません。C#ではstructは値型なんですか?そうすると、局所変数でstructを使うとスタックを多量に使うかもしれませんね(C#の内部を知らないので断言できませんが)。
    • good
    • 0
この回答へのお礼

私もc#を始めて1ヶ月もたたないので少し分からないですね。
引数や局所変数は最小限にしているつもりなのですが、やはり容量が足りないと出てしまいます。

上記の質問は私と全く同じなので参考になります。
しかし、飛ぶ先が全て英語なので訳に時間がかかりますがやってみようと思います。

お礼日時:2008/12/28 11:24

納期が間に合わないなどの場合を除いてアルゴリズムを変更すべき

この回答への補足

やはりアルゴリズムの変更のほうがいいって事ですね。

スタックの値の変更が簡単に出来るなら、それですませようと思っていたので。

補足日時:2008/12/27 19:56
    • good
    • 0

無限再帰になってるのでは?

この回答への補足

無限再帰にはなっていないと思います。

求める値を小さくして実行すると(実際に求めたい値ではない)
ちゃんと実行できるので…

補足日時:2008/12/27 19:53
    • good
    • 0

「VB2008 C#」


VBなのかC#なのか…。

どっち?

この回答への補足

すみません間違えました

VBでなくてVSです。

補足日時:2008/12/27 19:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!