ExpertiDict

C · Essencial · Inglês · Técnico

free

/fɹi/substantivo

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 acidental

Exemplos

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

Veja também

Todos os termos de C