Zeiger und Struktur



  • Tag Leute

    bin neu hier !!! 🙂 habe ein Problem mit einem Zeiger auf eine Struktur:
    Als Fehler Meldung kommt halt (Fette Zeile)
    (Wollte eine strcmp-funktion nachher machen und den wer nachname mit eingegebenen Wert vergleichen!

    linker Operand muss ein L-Wert sein

    while (pperson!=0)
    {
    printf("%s %s %s\n",pperson->nname, pperson->vname, pperson->nummer);
    nachname=pperson->name;
    pperson=pperson->next;
    }

    Bitte um Hilfe !!!

    MFG Soulfly



  • was tut nachname denn fuer ein Typ sein tun?



  • Sei Nachname

    char nachname[30]

    tun!!!!
    🙂



  • wenn nachname tut ein array sein tun, musse kopieren!
    zuweisen nur pointer tut laufen...

    strncpy(nachname,pperson->name,30-1);

    aber wieso tun kopieren wenn nachher vergleichen ??

    [edit]wieso bloss immer "-1" vergessen tun ? [/edit]

    [ Dieser Beitrag wurde am 15.01.2003 um 18:58 Uhr von Solaris'dUKe editiert. ]



  • Ich zu früh gepostet haben!!

    fehler schon sehen !! Trotzdem danke!!
    Was ist der untschied zwischen

    strcpy

    und

    strncmp

    wie Solaris'dUKe das meinte (weil ich jetzt diese strcpy benutze tun habe)



  • du meinst unterschied zwischen strcpy und strncpy?

    strcpy kopiert bis zum \0 und bei strncpy kannst du angeben wie lange der string maximal sein darf:

    char arr[]="Hallo";
    char c[2];

    strcpy(c,arr);
    das stuertzt ab

    strncpy(c,arr,2);
    stuertzt nicht ab, da nur 2 zeichen kopiert werden



  • Original erstellt von Shade Of Mine:
    du meinst unterschied zwischen strcpy und strncpy?
    [...]
    char arr[]="Hallo";
    char c[2];
    strncpy(c,arr,2);
    stuertzt nicht ab, da nur 2 zeichen kopiert werden

    Es stürtzt _NOCH_ nicht ab.. da du aber hier den Null-Abschluss überschreibst,
    weiss du nicht genau, wieviele mb beim Weiterkopieren von "c" gelesen werden 😉

    edit: sofern "c" jemals ein Null-Abschluss hatte 🙄

    [ Dieser Beitrag wurde am 15.01.2003 um 19:35 Uhr von Solaris'dUKe editiert. ]



  • Aja

    Wieder bin ich ein bißchen schlauer geworden!!

    Danke Leute!


Anmelden zum Antworten