Programm bleibt hängen
-
Hi B@sti,
Ich glaub' ich hab's!(???)
Du machst Dir den Speicherinhalt kaputt!!!
Du hast
dri drink[16];und arbeitest mit
for(int i=1;i <= 16; i++) das Array ab!!!DER INDEX MUSS ABER VON 0 BIS 15 GEHEN!
Kontrollier mal an allen Stellen. Du screibstst hinter das Array! :p
-
Ich bin ja sooo....
Mensch, das mir das nicht selber aufgefallen ist. Jetzt macht man schon so lang mit Strukturen und zeugs rum und dann sowas.
Das tolle ist das der Compiler mir nie ne Fehlermeldung gebracht hat. Und wenn ich es mit den Optionen, in Nachricht 1 erklärt, kompiliert habe dann funktionierte es. Kann mir das einer erklären?Danke an 'DerAltenburger' und die anderen die mir geholfen haben und mal wieder geduldig waren ;).
MfG
Basti[ Dieser Beitrag wurde am 10.03.2003 um 23:18 Uhr von B@sti editiert. ]
-
Exakt erklaeren kann das keiner.
Aber: Was genau in dem Falle passiert, ist abhaengig davon, was HINTER deinem Array im Speicher liegt.
1.Ist das 'ne selten benutzte Variable, passiert nicht viel - Du hast nur gelegentlich falsche Daten, aber nur wenn Du auf die Variable zugreifst.
2. Ist dort Programmcode, schmiert Dir das Programm / der PC ab, sobald dieser Teil angesprochen wird
Was genau hinter dem Feld angeordnet wird steuert der Compiler, auch abhaengig von Deinen Optionen. Deshalb das verschiedene Fehlverhalten! Das haengt auch vom Typ der Variablen ab (global, lokal, static ...)!
zum Trost: Ich komm von der Pascal- ecke, da ist mir das am Anfang laufend passiert. Bei Pascal kann ein Array- Index anders liegen) Ich hatte mir damals angewoehnt, Arrays immer um 1 groesser anzulegen - das verschenkt Platz, hat aber am Ende 'nen Puffer. Mach ich aber nicht mehr!