O que é um erro de ponteiro glibc free / malloc / realloc próximo tamanho / inválido e como corrigi-lo?

Você provavelmente está vendo esta pergunta porque sua pergunta foi encerrada como uma duplicata. Para uma lista moderadamente completa de perguntas relacionadas, consulteUma longa lista de possíveis duplicatas - alocação de memória C e limites de ultrapassagem no Meta Stack Overflow.

Exemplo de pergunta

Dechar grátis *: próximo tamanho inválido (rápido) a pedido denoobie em 11/04/2014.

Estou liberando umchar* após um processo de concatenação, mas recebo este erro:

free(): invalid next size (fast): 0x0000000001b86170

Este é o meu código:

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);
}
Pergunta genérica

Ao executar meu programa, vejo uma mensagem de erro como esta:

*** glibc detected *** ./a.out: free(): corrupted unsorted chunks: 0x12345678 ***

As informações detalhadas podem conter qualquer um dos seguintes itens após o*** glibc detected *** e o nome do programa, e a mensagem é seguida por um endereço hexadecimal (mostrado como 0x12345678) e outro***:

free(): corrupted unsorted chunks: 0x12345678free(): invalid next size (fast): 0x12345678free(): invalid next size (normal): 0x12345678free(): invalid pointer: 0x12345678free(): invalid size: 0x12345678malloc(): corrupted unsorted chunks: 0x12345678malloc(): corrupted unsorted chunks 2: 0x12345678malloc(): memory corruption: 0x12345678malloc(): memory corruption (fast): 0x12345678malloc(): smallbin double linked list corrupted: 0x12345678munmap_chunk(): invalid pointer: 0x12345678realloc(): invalid next size (fast): 0x12345678realloc(): invalid old size (fast): 0x12345678realloc(): invalid pointer: 0x12345678corrupted double-linked list: 0x12345678

Isso acontece ao chamar ofrobnicate() função; o que há de errado com essa função?

questionAnswers(1)

yourAnswerToTheQuestion