Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat von »"n0_0ne"«
Also ich finde 1MB ist etwas wenig, oder? Ich würde sagen das müsste etwas mehr sein (könnte man ja fast keine rekursiven funktionen mehr benutzen ), außerdem kann man die Größe glaub ich auch ändern, aber es stimmt schon, der Stack ist begrenzt. Im Prinzip kommt da alles drauf, was so mit prozeduren zu tun hat, also lokale variablen usw. wenn eine neue funktion aufgerufen wird, werden die benötigten variablen + pointer auf dem stack abgelegt, das passiert aber normalerweise automatisch.
Auch Chase hat recht. du kannst den Heap als unendlich ansehen. Wenn du z.B. 4Gb ram hast und grade 5 programme laufen kann jedes trotzdem 4Gb anfordern. das wird dann auf die festplatte ausgelagert. Mit dem Heap kannst du oft noch etwas performance rausholen, weil der Stack (wird eben alles automatisch gemacht) recht langsam ist. Dafür musst du dich dann aber selbst ums freigeben etc kümmern... und der compiler kann keine fehler mehr erkennen (jedenfalls keine nullpointer etc)
C-/C++-Quelltext |
|
1 2 |
int tschuess = 1337; return &tschuess; // (ausgesprochen "und tschüss") |
Zitat
The default stack reservation size used by the linker is 1 MB
Werbeanzeige