0Pricing
Zig Academy · Aula

alloc, free, create, destroy

As operações fundamentais do alocador.

alloc, free, create, destroy é 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.

Quatro operações essenciais

Um allocator oferece quatro chamadas principais: alloc e free para vários itens, create e destroy para um único valor.

alloc retorna uma fatia

Use alloc para solicitar uma sequência de itens. Você informa o tipo do elemento e uma quantidade, e recebe uma fatia com essa quantidade de elementos.

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

alloc pode falhar

Como o heap pode ficar sem espaço, alloc retorna uma união de erro. A palavra-chave try trata o caso OutOfMemory de forma simples para você.

const list = try a.alloc(i32, 10);

free devolve a memória

Quando terminar, chame free com a mesma fatia exata que recebeu. Se esquecer, o GeneralPurposeAllocator informará um vazamento.

a.free(buf);

Use defer free imediatamente

Um hábito comum é escrever defer a.free logo depois de um alloc bem-sucedido, para que a limpeza seja executada independentemente de como o escopo termine.

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

create para um valor

Quando precisar de exatamente um valor no heap, use create. Ele recebe um tipo e retorna um ponteiro para um único item em memória nova.

const node = try a.create(Node);

Escreva por meio do ponteiro

create fornece um ponteiro, portanto você define o valor por meio dele usando .* antes de utilizar os dados apontados.

node.* = Node{ .value = 42 };

destroy libera o ponteiro

Libere um valor criado com destroy, passando o mesmo ponteiro retornado por create. Essa é a chamada correspondente a create.

a.destroy(node);

Combine os pares

A regra é rigorosa: alloc corresponde a free, e create corresponde a destroy. Nunca os troque nem libere uma fatia que você não alocou.

Libere com o mesmo allocator

Sempre libere a memória usando o mesmo allocator que a produziu. Misturar allocators causa corrupção que o compilador não consegue detectar.

Erros ignoram o corpo de defer

Se o próprio alloc falhar, nenhuma memória terá sido criada, portanto não haverá nada para liberar. É por isso que defer free vem depois de um alloc bem-sucedido. ✅

Verificação rápida

Associe cada chamada de alocação à chamada correta de liberação.

Recapitulação

Você aprendeu os pares: alloc/free para fatias e create/destroy para valores únicos, sempre liberados com o mesmo allocator. 🎯

Perguntas Frequentes

A aula “alloc, free, create, destroy” é grátis?

Sim — o texto completo de “alloc, free, create, destroy” é 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 “alloc, free, create, destroy”?

As operações fundamentais do alocador. 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 “alloc, free, create, destroy”?

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. Por que Zig não tem alocações ocultas
  2. A interface de alocação
  3. alloc, free, create, destroy
  4. Listas dinâmicas com ArrayList
← Voltar para Zig Academy