ExpertiDict

C · Essencial · Inglês · Técnico

heap

/hip/substantivo

Á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

Veja também

Todos os termos de C