質問: マイコンの開発環境で、プロジェクトを作るときに「スタックサイズ」を 指定(設定?)するものがありました。 これってどういう意味があるのでしょう?? 基本的に、静的に確保したメモリ、動作中に動的に確保されるメモリが スタック領域に行かなければいいだけのことではないのでしょうか? 仮に、指定したスタックサイズを超えたとき、静的、動的メモリがスタック サイズに達していなければ問題ないと思っているのですが、違うのでしょう か? ご存知の方がいらっしゃいましたら、ご教示いただけると幸いです。
回答: マイコンの開発環境と書かれても、色々ありますので、 他の方が、追試可能な様に、 掲示可能であれば、具体的な開発環境を掲示してみてください。 MPLAB x.xx / AVR Studio Ver xx など、アバウトでも構いません。 コンパイラサポートで、何かサポがあるかもしれませんし、 当該チップにスタックチェックの機能があるのかもしれませんし、 チップや、コンパイラ、開発環境を調べてみないと、判らないですよね? ’ リンクされる、ライブラリが勝手に使う部分はどう考えますか? 対象環境が、動的クラス、動的オブジェクトを使用可能な機能を含んでいる場合は、 どう考えます? Cで、自前ライブラリ、標準ライブラリ含めて、全て手の内にあり、正しく動いているのであれば、 >基本的に、静的に確保したメモリ、動作中に動的に確保されるメモリが >スタック領域に行かなければいいだけのことではないのでしょうか? >仮に、指定したスタックサイズを超えたとき、静的、動的メモリがスタック >サイズに達していなければ問題ないと思っているのですが、違うのでしょうか? は、起きないかもしれませんが、 マイコン用の、C / C++ では、極つまらない、プログラムミスにより、容易にメモリ破壊が可能です。