Linker, Loader und ausführbare Formate
Welcher Vorteil ergibt sich daraus, Heap und Stack eines Prozesses mit einem großen freien Bereich dazwischen in entgegengesetzte Richtungen wachsen zu lassen?
- ADer freie Bereich kann flexibel von beiden genutzt werden, auch wenn vorher nicht bekannt ist, wer wie viel braucht
- BHeap und Stack können gleichzeitig dieselben Adressen verwenden, sodass sich der Speicher verdoppelt
- CDer Stack kann nie mehr überlaufen
Antwort und Erläuterung anzeigen
Antwort: A. Der freie Bereich kann flexibel von beiden genutzt werden, auch wenn vorher nicht bekannt ist, wer wie viel braucht
Der Heap wächst zu größeren, der Stack zu kleineren Adressen; der freie Bereich dazwischen steht daher sowohl Programmen mit viel Heap-Bedarf als auch Programmen mit viel Stack-Bedarf zur Verfügung. Würde jedem eine feste Größe zugewiesen, könnte einer überlaufen, obwohl beim anderen Platz übrig ist. Für den Stack ist jedoch häufig eine Obergrenze festgelegt, und zu tiefe Rekursion überschreitet sie und führt zum Stack Overflow.