C · Essencial · Inglês · Técnico
heap
Área de memória gerenciada manualmente, de onde malloc e companhia tiram blocos que sobrevivem até o free. Permite estruturas cujo tamanho só se conhece em tempo de execução.
Onde usar
Você usa o heap quando o dado precisa viver além da função que o criou ou quando o tamanho é dinâmico. Cada bloco é sua responsabilidade: vazar ou liberar duas vezes são erros comuns.
Em código
#include <stdlib.h>
typedef struct { int n; } Lista;
Lista *novo(void) {
Lista *l = malloc(sizeof *l);
if (l) l->n = 0;
return l; // vive no heap
}Exemplos
The node must live on the heap, not on the stack.
O nó precisa viver no heap, não na stack.
Memory on the heap is your responsibility.
A memória no heap é responsabilidade sua.
Cuidado
Confundir com a estrutura de dados heap (fila de prioridade); aqui é só a região de alocação dinâmica.
Sinônimos
memória dinâmica
Antônimos
stack