Beim Schreiben von C++ - Code habe ich gelernt, dass die Verwendung des Stapels zum Speichern von Speicher eine gute Idee ist.Erkennen, dass der Stapel voll ist
Aber vor kurzem ich in ein Problem lief:
hatte ich ein Experiment, das Code hatte, die wie folgt aussah:
void fun(const unsigned int N) {
float data_1[N*N];
float data_2[N*N];
/* Do magic */
}
Der Code exploted mit einem seqmentation Fehler zufällig, und ich hatte keine Ahnung, Warum.
Es stellte sich heraus, dass ich versuchte, Dinge zu speichern, die zu groß auf meinem Stapel waren, gibt es eine Möglichkeit, dies zu erkennen? Oder zumindest erkennen, dass es schief gelaufen ist? Diese
Ist Ihre Frage zu C oder C++? –
Ich denke, Sie können ein Array auf dem Stack nicht mit Variablen in C/C++ initialisieren! –
Wie groß sind Ihre Daten? Ich schlage vor, dass Sie 100KB + Daten im Heap mit malloc/free speichern. (Andere Leute können vorschlagen, eine noch niedrigere Grenze) – nhahtdh