Zig Academy · Aula

O alocador de testes detecta vazamentos

Detecte erros de memória automaticamente.

Aula 3 de 413 etapas

O alocador de testes detecta vazamentos é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.

Erros de memória são traiçoeiros

Um programa pode passar por todas as verificações de valores e ainda assim vazar memória por esquecer de liberá-la. O Zig oferece uma ferramenta de testes para detectar exatamente isso.

Conheça testing.allocator

Dentro de um teste, você obtém um alocador especial em std.testing.allocator. Use-o sempre que seu código precisar alocar memória no heap.

const a = std.testing.allocator;

Ele acompanha cada alocação

O testing.allocator registra cada bloco que entrega. Quando o teste termina, ele verifica se cada bloco foi devolvido.

Um vazamento faz o teste falhar

Se mesmo uma alocação não for liberada, o testing.allocator informa um vazamento e o teste falha, indicando a chamada free ausente.

Alocando em um teste

Peça memória ao alocador como faria no código real. Aqui, alloc reserva um buffer de dez bytes que você deverá liberar depois.

const buf = try a.alloc(u8, 10);

Libere com defer

Associe cada alocação a um defer que a libera. A limpeza é agendada imediatamente, portanto será executada mesmo que o teste falhe no meio do caminho.

const buf = try a.alloc(u8, 10);
defer a.free(buf);

Esqueça free e detecte o erro

Remova esse defer e o teste falhará com um relatório de vazamento. É assim que o allocator transforma um erro silencioso em uma falha evidente e corrigível.

Ele também detecta liberações duplicadas

O mesmo allocator verificado detecta a liberação do mesmo bloco duas vezes ou a liberação de uma memória que ele nunca entregou, situações que costumam causar falhas graves.

Passe-o ao seu código

Funções que alocam recebem um parâmetro de alocador. Em um teste, passe testing.allocator a elas para que a memória também seja acompanhada.

const list = try buildList(std.testing.allocator);

Limpe o que você cria

O teste precisa liberar tudo o que sua função alocou. Adicione um defer logo após a chamada para usar free ou deinit nos dados retornados.

defer list.deinit();

Testando a liberação de memória

Como os vazamentos fazem a compilação falhar, cada teste aprovado comprova que sua memória foi devidamente liberada. Essa confiança é exclusiva de testing.allocator.

Verificação rápida

Você executa um teste que aloca usando std.testing.allocator, mas nunca libera o buffer. O que acontece?

Recapitulação

Você usou std.testing.allocator para detectar vazamentos e liberações duplicadas sem custo. Associe cada alloc a um defer free e seus testes permanecerão limpos. ✅

Grátis para começar

Aprenda Zig com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “O alocador de testes detecta vazamentos” é grátis?

Sim — o texto completo de “O alocador de testes detecta vazamentos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.

O que vou aprender em “O alocador de testes detecta vazamentos”?

Detecte erros de memória automaticamente. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Zig Academy?

Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “O alocador de testes detecta vazamentos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Zig Academy?

Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Escrevendo blocos test
  2. Asserções com std.testing
  3. O alocador de testes detecta vazamentos
  4. Executando e filtrando testes
← Voltar para Zig Academy