Zeiger
-
Hi!
Habe mich gerade mal mit Zeigern befasst und brauche nun eure Hilfe!
Möchte beispielsweise 3 Wörter einlesen, diese in einen Zeiger ablegen und danach wieder auslesen.
Bei mir stürzt aber immer der Rechner ab, was mach ich da beim Auslesen falsch??#include <stdio.h> #include <stdlib.h> int main() { int i; char *titel[500]; for (i=0; i<3; i++) { printf("Eingabe %d\t", i+1); scanf("%s", &titel[i]); } printf("\n\nEingaben\n"); for (i=0; i<3; i++) { printf("Eingabe %d\t%s\n", i+1, titel[i]); } system("PAUSE"); }
-
char *titel[500];
Du erstellst kein Array von 500 Charaktern, sondern 500 Zeiger auf einen Charakter.
Richtig ist: char titel[500];
Denn ein Array kann auch als Pointer auf das erste Element angesehen werden.
scanf("%s", &titel[i]);
Das gefällt mir auch nicht.
Mach: scanf("%s", titel);
-
Achne halt, jetzt verstehe ich dich:
Du willst soetwas hier:
char titel[3][500]; //Also ein Array mit 3 x 500 Zeichen
scanf("%s", titel[i]);