Hallo zusammen, mein COmpiler hat Probleme mit meinem Array Feld[] und meldet Stack overflow, was ist da los? #include <iostream> using namespace std; int main () { // Variablen char Feld[9]; // Feld mit int-Werten belegen for (int i=0; i<10; i++) { cout << "Zahl fuer Feld " << i+1 << " eingeben: "; cin >> Feld[i]; cout << endl; } cout << "Gesamtes Feld anzeigen: " << endl << endl; // Gesamtes Feld anzeigen for (int j=0; j<10; j++) { cout << Feld[j]; cout << " "; } return 0; }
üblicher fehler: char Feld[9]; also 9 einträge for (int i=0; i<10; i++) 10 einträge! damit überschreibst du den stack.
Hansi schrieb: > mein COmpiler hat Probleme mit meinem Array Feld[] und meldet Stack > overflow, was ist da los? Nicht nur der! > char Feld[9]; > for (int i=0; i<10; i++) Überdenke noch einmal die Größe des Arrays und die Anzahl der abgefragten Werte
Habe es gerade selbst gemerkt. Feld soll 10 Einträge von 0-9 haben, bin durcheinander gekommen, danke!
Deshalb empfiehlt es sich bei so was Konstanten zu definieren und diese dann durchgaengig im Program zu verwenden ;)
1 | #define ARRAY_LENGTH 10
|
Michael Reinelt schrieb: > oder sizeof() Obacht beim Einsatz von sizeof mit Arrays bei Verwendung als Funktionsargument.
Rufus Τ. Firefly schrieb: > Michael Reinelt schrieb: >> oder sizeof() > > Obacht beim Einsatz von sizeof mit Arrays bei Verwendung als > Funktionsargument. ich kann dir grad nicht folgen... kannst du das (vielleicht anhand eines Beispiels) erläutern?
Michael Reinelt schrieb: > ich kann dir grad nicht folgen... kannst du das (vielleicht anhand eines > Beispiels) erläutern?
1 | void f( daten[12] ) { |
2 | int i = sizeof( daten ); |
3 | }
|
Danke. Urgs. Wäre nie im Leben auf die idee gekommen sowas zu schreiben...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.