Exe-datei funktioniert nicht mehr

Hallo!
Ich versuche zur Zeit, c zu lernen und habe heute folgendes Programm erstellt:

#include
#include

int main(int argc, char *argv[])
{
int Alter;

printf(„Gib bitte dein Alter ein:\n“);
scanf("%d", Alter);

if (Alter=14 && Alter =18)
{
printf(„Du bist erwachsen.\n“);
}
system(„PAUSE“);
return 0;
}

Beim Kompilieren wurden keine Fehler angezeigt. Wenn ich dann beim Ausführen irgendeine Zahl, z.B, 16 eingegebe, dann erscheint ein Windowsfenster mit "Alter(so heißt das Projekt).exe funktioniert nicht mehr, es wird nach einer Lösung des Problems gesucht.

Jetzt das komische: Gebe ich irgendeinen Buchstaben ein, dann zeigt es irgendein Ergebnis an, z.B. „Du bist erwachsen.“

Warum funktioniert es mit Buchstaben, aber mit Zahlen nicht? Ich hoffe, das ist kein Anfängerfehler und irgendjemand kann mir helfen!
lg

Hallo!
Ganz simpel: Du darfst ins scanf nicht Alter reinstecken, sondern musst die Adresse von Alter nehmen (also &Alter), dann stürzt es Dir nicht mehr ab.
Gruß,
Martin

O mann… Da vergisst man ein Zeichen und das funktioniert nicht
Danke!! Selbst wär ich wahrscheinlich nie drauf gekommen!
lg

Hi,

gib’ dem Compiler die Option -Wall (warnings all), dann zeigt er (zumindest der gcc) an, dass *int als Argument erwartet wurde, aber int eingetragen ist. Der C-Standard an sich verlangt keine Typprüfungen, mit der Option werden aber wenigstens die gröbsten Fehler angezeigt.

Gruß Lutz

1 Like