1

一部の言語またはプラットフォームではスタックのサイズが固定されていないため、オーバーフローしにくいですか? UNIX で C を使用したことを覚えています。スタックはオーバーフローしにくいものでしたが、Win 3.1 の時代には、スタックは非常に簡単にオーバーフローしました。

4

3 に答える 3

2

「スタック」とは古いスタックを意味する場合、ほとんどの言語はそうです。Javaには、メモリによってのみ制限されるスタッククラスがあります。おそらくあなたはコールスタックを意味します、その場合私が考えることができる最大の例はスタックレスPythonです、それは私の理解では、Pythonコードのコールスタックとして純粋なPythonメモリ制限スタック(Javaのような)を使用しますCのコールスタックを使用するよりも。

于 2009-05-29T04:58:20.663 に答える
1

これは、実践的な問題と理論的な問題です。Lispインタプリタのスタックは、使用可能なメモリによってのみ制限されます

末尾再帰を実装するスキームやその他の言語では、末尾再帰関数は無限スタックを持ちます

于 2009-05-29T04:57:51.507 に答える
0

Mac システム 6、7、および 8 には、人為的な制限なしに成長できるコール スタックがありました。

また、スタックとヒープの衝突を検出する方法が保証されていないため、あらゆる種類の問題に巻き込まれる可能性があります...

于 2009-05-29T13:28:39.643 に答える