自分自身を再帰的に無限に呼び出す関数があります。無限再帰中に関数がスタック空間を使い果たすとどうなりますか?
この関数にはいくつかの引数もあります。
すべての関数呼び出しでは、引数と戻りアドレスがスタックにプッシュされます。
各プロセスには、ヒープのように動的に拡張できない固定サイズのスタック領域があります。 そして、私は各スレッドも独自のスタックを持っていると思います。
ここで関数が無限に再帰的に呼び出され、プロセスのスタック領域が不足すると、どうなりますか?
プログラムはクラッシュしますか? OSは状況を処理しますか? 4GBのアドレス空間があるので、OSはスタックサイズを増やすために何もできません。
私はそれがかわいいと思った。 ++ – guns