Programm geht flöten bei einfachem Stringvergleich
-
bei mir leider net
-
Dann liegts auch nicht daran!! Sondern woanders!!
-
else if (strcmp (p_chMember, "coll:") == 0) { fscanf (*fp, "%s", &cVal); if(strcmp(cVal, "true") == 0) /// GENAU HIER GEHT ER FLÖTEN! { p_tile->coll = true; } else { p_tile->coll = false; } }
GENAU DA wo Makiert ist, genau ab da bricht das programm ab! GENAU DA!
-
Benutz einfach deinen Debugger.
-
fscanf (*fp, "%s", &cVal);
ändern in
fscanf (*fp, "%s", cVal);
-
[Edit] Man sollte erst richtig lesen, bevor man postet *g [/Edit]
[ Dieser Beitrag wurde am 08.02.2003 um 02:10 Uhr von SnorreDev editiert. ]
-
Und wenn du wirklich meintest das liegt da immer noch, dann mach uns doch eine klitze kleines konsolen programm fertig, das den fehler zeigt.
-
@vielleicht:
THX! Das wars! Rein Logisch gesehen dürfte das net gehen, aber irgendwie meckert mein Compiler dabei net und es läuft stabil! THX nochmal
-
warum dürfte das nicht gehen? bei arrays brauch/darf man das & nicht angeben :o
-
Hi,
für diesen Fehler gibt es zwei Ursachen
a) überprüfe, ob du genug Speicherplatz für die char-Variable geschaffen
hastb) Warum schreibst du fscanf (*fp, "%s", &cVal);
richtig wäre :
fscanf (*fp, "%s", cVal);
denn du übergist ja einen PointerSchönes Wochenende
MfG
pierre
-
Benutze liber fgets() für fscanf() , Da kannst die Anzahl Maximaler zeichen beim lesen festlegen. Solltest du einen längeren String als 256 Zeichen einlesen bringt das früher oder später einen absturz an anderer stellen. Nach solchen fehlern kannst in Größeren Programme schon verzweifeln wenn du an der falschen stelle suchtst!