String einlesen
-
Hab nur mal kurz eine Frage:
char* name=NULL; printf("Geben sie den Namen der Band ein: "); scanf("%s",&name);
ist das was ich da mache überhaupt richtig (also das ich das eingelesene so einem Zeiger übergeben?
-
Mister004 schrieb:
ist das was ich da mache überhaupt richtig (also das ich das eingelesene so einem Zeiger übergeben?
Ne
1. Ist name schon ein Zeiger, den du übergeben kannst. Du darfst nicht die Adresse des Zeigers übergeben.
2. Zeigt name auf nichts beschreibbares.
-
"Zeigt name auf nix beschreibbares" ... heißt das ich brauch ein malloc?
-
Mister004 schrieb:
"Zeigt name auf nix beschreibbares" ... heißt das ich brauch ein malloc?
Ne.
char buf[50]; scanf("%49s", buf);
Das 49 legt die maximale Zeichenanzahl fest, die eingelesen werden kann. (Nullterminierung nicht vergessen ;))
-
Mister004 schrieb:
"Zeigt name auf nix beschreibbares" ... heißt das ich brauch ein malloc?
Kannst du machen.
Oder gleich ein Array anlegen:
char name[100]; // Platz für 99 Zeichen + '\0' printf("Geben sie den Namen der Band ein: "); scanf("%99s",name); // Max. 99 Zeichen einlesen.
-
OK danke für die schnellen Antworten ^^