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]);


Anmelden zum Antworten