C · Essencial · Inglês · Técnico
free
Função da stdlib que devolve ao alocador um bloco obtido com malloc, calloc ou realloc. O ponteiro continua guardando o endereço antigo, mas não pode mais ser usado.
Onde usar
Cada malloc precisa de exatamente um free. Atribuir NULL ao ponteiro logo após liberar é uma defesa comum contra double free.
Em código
char *s = malloc(32);
// ... usa s ...
free(s);
s = NULL; // evita uso acidentalExemplos
Call free once the buffer is no longer needed.
Chame free quando o buffer não for mais necessário.
Set the pointer to null right after free.
Atribua nulo ao ponteiro logo depois do free.
Cuidado
Achar que free(NULL) é um erro: ele é permitido e não faz nada, mas liberar o mesmo bloco duas vezes é comportamento indefinido.
Sinônimos
liberar memória
Antônimos
malloc