Pointer und Dynamische Speicheranforderung-Segmentierungsfehler



  • #include <stdio.h>
    #include <stdlib.h>
    int main(){
    char *p, z[100];
    fgets(z, sizeof(z), stdin);
    p=malloc(strlen(z)+1);
    strcpy(p,z);
    printf("%s", *p);
    
    return 0;
    }
    

    Hi,
    das ist mein Code um mal zu Testen wie das mit den Pointern funktioniert.
    Ich dachte mir das so:
    über fgets wird eine Zeichenkette eingelesen, anschließend wird mittels malloc der benötigte Speicherbereich reserviert(+1 für \0) und der Pointer p drauf gerichtet. Laut den Vorlesungen zeigt nun p auf den Anfang des reservierten speichers.
    mit strcpy will ich nun den string z nach p kopieren.
    mit printf möchte ich nun den String ausgeben, ich geb den string ein und drück enter:
    Segmentierungsfehler 😞
    wassn falsch?
    lg



  • printf("%s", p);



  • Info_Student schrieb:

    wassn falsch?

    Dass du nicht die [cpp]-Tags, sondern die [code]-Tags verwendest, ist falsch. 😉

    Hast du das Ganze über den Debugger laufen lassen? Wo genau kommt die Fehlermeldung?


Anmelden zum Antworten