Programm bleibt hängen
-
Hallo
ich verwende BCB 4 prof und ich wuerde es mal uebersetzen, wenn es nict zu gross ist
MfG
Klaus
-
@DerAltenburger
Das ist alle beachtet.
Ich werde es am Monat im Büro mal kompilieren, da hab ich ein Win2K System. Ich denke immernoch das es an dem WinXP liegt. Ansonsten meld ich mich nochmal.Danke für eure Hilfe.
MfG und schönen Samstagabend
Basti
-
Hab
' noch 'ne Idee:fscanf(datei,"%s ",&struktur[i].name)
!!! bei scanf / fscanf mit Format "%S" braucht's nicht den &- Operator (darf nicht) !!!
-
Naja, kommt drauf an, wie struktur definiert ist. Das hat uns Basti ja verwährt.
-
Also,
unter Win2000 kommt auch ein Fehler.
Es liegt nicht am einlesen, mein Debugger hatt mit dem einlesen kein Problem, und wenn ich den Inhalt meiner Struktur überprüfe dann steht auch alles richtig drin.
*heul*Und nu?
MfG
Basti
-
Zeig doch 'mal Deine Struktur!
Wann Wo und Wie erzeugst Du die passende Variable 'struktur'(statisch oder dynamisch)?
-
OK,
habs nicht hinbekommen. Hab jetzt alles relevante in eine Datei gepackt, der aufbau ist der selbe geblieben. Der Code ist aus der "Unit1.cpp"Hier der Link zu der Datei: [edit] Cut [/edit]
MfG und Danke
Basti[ Dieser Beitrag wurde am 10.03.2003 um 23:37 Uhr von B@sti editiert. ]
-
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!