Zeiger Problem



  • Hi, ich versteh einfach nicht warum das nicht funktioniert:

    ...
    
    char* pZeiger;
    char buffer[50];
    
    gets(buffer);
    
    *pZeiger = buffer;
    

    Der Zeiger sollte doch auf's erste Zeichen von Buffer Zeigen oder?? Stattdessen spuckt mir der TC folgende Meldung aus:

    Non-portable pointer assigment in function main
    Possible use of "pZeiger" before definition in function main

    Ich hoff ihr könnt mir weiterhelfen 😕

    danke



  • AbsoluterBeginner schrieb:

    Der Zeiger sollte doch auf's erste Zeichen von Buffer Zeigen oder??

    Dann weise dem Zeiger doch die Adresse dieses Zeichens zu:

    pZeiger = buffer;
    

    Das Sternchen bei dir hieße ja, dass dem Zeichen, auf das pZeiger gerade zeigt, die Adresse von buffer zugewiesen werden sol.



  • gets(buffer);
    

    gets() ist gefährlich, weil man damit einfach das was hinter buffer kommt überschreiben kann -> Bufferoverflow.

    mfg



  • Stattdessen sollte man fgets() verwenden:

    fgets(buffer, sizeof(buffer), stdin);
    

Anmelden zum Antworten