13

タイトルにあるように、スタックのサイズに関する一般的な「経験則」はありますか。サイズは、OS、アーキテクチャ、キャッシュのサイズ、使用可能なRAMの量などによって異なると思います。

しかし、一般的に何か言うことができますか、またはこのプログラムが使用できるスタックの量を知る方法はありますか?ボーナスの質問として、スタックのサイズをユーザーが固定サイズに設定できる方法はありますか(コンパイラーフラグなど(ここでは主にC / C ++を考えますが、より一般的です))?

ところで、私は好奇心から厳密に質問しています。スタックオーバーフローは発生していません。:)

4

2 に答える 2

6

Windowsでは、オペレーティングシステムなどに関係なく、スレッドのデフォルトのスタックサイズは100万バイトです。

マネージコード(C#、VBなど)では、このctorを使用して新しいスレッドに異なるスタックサイズを強制することができます。

http://msdn.microsoft.com/en-us/library/5cykbwz4.aspx

管理されているかどうかに関係なく、Windowsプログラムのデフォルトスレッドのスタックサイズを変更するには、editbinユーティリティを使用できます。

http://msdn.microsoft.com/en-us/library/xd3shwhf.aspx

于 2013-03-11T00:14:35.493 に答える
5

はい、スタックサイズを設定できます。これは通常、リンカーフラグであり、ツールチェーンによって異なります(通常、これはコンパイラの名前で参照されます)。

StackOverflowには、いくつかの既存の質問もあります。

于 2013-03-11T00:07:40.817 に答える