kleines Zeigerproblem



  • Hi!

    Habe hier mal zum Üben willkürlich ein kleines Programm geschrieben und möchte nun die Variable cd[1], nachdem sie durch 'scanf' beschrieben wurde, den Wert "HALLO" annehmen lassen, tut sie jedoch nicht. Dafür kann ich aber ein einzelnes Zeichen austauschen...
    Wo ist der Denkfehler?
    MfG

    #include <stdio.h>
    #include <stdlib.h>
    
    void wechsel(char *zeiger)
    {
    char wort[20]="HALLO";
    printf("\n%s\n", wort);
    //strcpy(*zeiger,wort); /*funktioniert nicht*/
    *zeiger=wort[0];  /*funktioniert*/
    }
    
    main()
    {
    char cd[100][100];
    int i;
    
    for (i=0; i<3; i++)
    {
    printf("CD%d: ", i+1);
    scanf("%s", &cd[i]);
    }
    
    printf("\n");
    
    for (i=0; i<3; i++)
    {
    printf("CD%d: %s\n", i+1, cd[i]);
    }
    
    wechsel(&cd[1]);
    printf("\n");
    
    for (i=0; i<3; i++)
    {
    printf("CD%d: %s\n", i+1, cd[i]);
    }
    
    getch();
    }
    


  • strcpy erwartet einen zeiger, also gib ihm doch den zeiger.
    wenn
    type* foo;
    dann ist
    *foo
    type



  • wechsel(*cd);
    

    für getch(); brauchst du noch: #include <conio.h>

    cu



  • strcpy erwartet einen zeiger, also gib ihm doch den zeiger.
    wenn
    type* foo;
    dann ist
    *foo
    type

    Wie ist das gemeint? Muss ich das Sternchen weglassen, dann gibt er wieder eine Fehlermeldung für strcpy...



  • Sorry, Problem hat sich gelöst!


Anmelden zum Antworten