Das ist wahrscheinlich eine dumme Frage, aber ich habe es schwer, etwas online zu finden.kann lokale Variablenzuweisung werfen?
Ich weiß, operator new kann eine bad_alloc exception werfen, wenn es nicht Speicher zuordnen, aber was passiert mit der lokalen Variablenzuordnung?
stelle ich mir ein System, wo es keine mehr Speicher zur Verfügung und das Programm ausführt, so etwas wie:
void do_something(){
int a = 0;
}
Was wird passieren? Wie ist der Platzbedarf für "a" vergeben? Kann es werfen?
bekam ich die Frage von Code ähnlich wie diese irgendwo zu sehen:
void do_something() noexcept {
// some local variables being allocated
}
Es hat mich die Beziehung zwischen keine Ausnahme und lokalen Speicherzuweisung fragen. Um die Dinge etwas verwirrender zu machen, sah ich this, was mich wundert, wenn die Speicherzuweisung tatsächlich passiert ...
Ich würde denken, das würde einen StackOverflow verursachen?Obwohl mir das nie passiert ist. – Carcigenicate
Ich gehe davon aus, dass das Programm nur abstürzen würde, weil es Speicher nicht hinzufügen kann, so würde es nur einen Fehler werfen? –
Mit modernen Betriebssystemen kann dies wegen virtuellem Speicher nicht passieren. @CJHutchison – Sridharan