Programm funktioniert nicht mehr



  • #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    void kelime3(char* kelime)
    {
    char *string2= (char*) malloc(sizeof(char)* strlen(kelime));
    int len=strlen(kelime);

    for(int i=0;i<len;i++)
    {
    string2[i]=kelime[len-1-i];

    }
    }

    main(){
    char *kelime="Sastrigali";
    char *kelime2;
    kelime3(kelime);

    strcpy(kelime,kelime2);

    free(kelime2);

    printf("%s\n,kelime") ;
    int x;
    scanf("d,x");
    }

    Wo liegt mein Fehler 🙄

    [code="c"]



  • Offensichtlich sind die beiden Zeilen Unsinn:

    strcpy(kelime,kelime2);
    free(kelime2);
    

    Frage1: Wieviel Speicher benötigt ein String in C?
    Frage2: Worauf soll der Pointer kelime2 zeigen?



  • Bei main ist so ziemlich alles falsch.



  • DirkB schrieb:

    Bei main ist so ziemlich alles falsch.

    Leider ist wirklich in den meisten Zeilen der Wurm drin.
    Habe nach den ersten offensichtlichen Fehlern nicht weiter gelesen.

    1. Unterprogramm kelime3 erzeugt Speicherleck
    und macht insgesammt so keinen Sinn
    Zudem reicht der allokierte Speicher nicht ...
    2. Rückgabewert bei main fehlt
    3. Rückgabewert kelime3 / oder Parameter fehlen
    4. Nicht initialisierter Pointer bei strcpy



  • 5. beschreiben eines Stringliterals
    6. printf falsch
    7. scanf dreifach falsch


Anmelden zum Antworten