free char *: Ungültige nächste Größe (schnell) [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Bei Auftreten eines Fehlers "*** Glibc erkannt *** frei (): Ungültige nächste Größe (schnell)" 2 Antworten

Nach einem Verkettungsvorgang wird ein Zeichen * freigegeben.
Aber ich erhalte diesen Fehler:

free (): Ungültige nächste Größe (schnell): 0x0000000001b86170

Unten ist mein Code:

void concat(stringList *list) {
    char *res = (char*)malloc(sizeof(char*));

    strcpy(res, list->head->string);

    list->tmp = list->head->next;
    while (list->tmp != NULL) {
        strcat(res, ",");
        strcat(res, list->tmp->string);
        list->tmp = list->tmp->next;
    }

    printf("%s\n", res);

    free(res);
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage