Immer wenn ich diese Zeile von C++ - Code ausführe, stürzt das Programm, in dem die Zeile ausgeführt wird, während der Laufzeit ab (ein Fenster erscheint, das anzeigt, dass das Programm nicht mehr reagiert). Die Kompilierung wird ohne Ausnahmen ausgeführt.Warum verursacht diese Array-Initialisierung in C++ einen Absturz?
int arr[1000000];
Ich erwarte diese Initialisierung einfach mit einer Million man Elemente eine int
Array zu initialisieren. Danach habe ich versucht, einen Zeiger mit new
zu initialisieren, der auf einen 1000000 Element int
Array-Speicherblock zeigte und dann den Zeiger auf das Array setze, das ich verwenden werde, aber das ist fehlgeschlagen. Wie kann ich ein solches Array erfolgreich initialisieren?
Ich verwende die neueste Version von MinGW auf Windows 10 zu kompilieren.
zugewiesen werden. Voting zum Schließen als fehlendes reproduzierbares Beispiel. Es spielt eine Rolle, wo die Deklaration ist, welcher Compiler Sie verwenden, auf welchem System und welche Optionen Sie verwenden. Aber im Allgemeinen ist der praktische Weg, 'std :: vector' zu verwenden. –
Lesen Sie mehr über [call stacks] (https://en.wikipedia.org/wiki/Call_stack). Sie sind praktisch in der Größe begrenzt (oft auf ein oder ein paar Megabyte auf Desktop-Computern), aber das Limit ist spezifisch für Ihren Computer und Ihr Betriebssystem. –
Ich habe eine Lösung für mein Problem gefunden und werde die Antwort posten, sobald die Frage nicht mehr beantwortet wird. –