Por que Zig não tem alocações ocultas
A alocação é sempre recebida explicitamente.
Por que Zig não tem alocações ocultas é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 1 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.
A memória é explícita
Em Zig, nenhuma função da biblioteca padrão obtém silenciosamente memória do heap. Se o código precisa alocar, deve declarar isso explicitamente. 📦
Você fornece o Allocator
Tudo que aloca recebe um Allocator como parâmetro. A memória não pode surgir a menos que você forneça à função a ferramenta para criá-la.
fn buildList(allocator: std.mem.Allocator) !void {}Nenhuma palavra-chave new oculta
Zig não tem o operador new nem um coletor de lixo. Nada acessa o heap às suas costas como acontece em muitas linguagens.
Por que isso importa
Como a alocação é visível, você sempre sabe de onde vem a memória. Isso é essencial para chips embarcados, núcleos de sistemas e laços de jogos com alta exigência de desempenho.
Leia a assinatura
Uma função que pode alocar mostra isso em sua assinatura: ela recebe um Allocator e geralmente retorna uma união de erro com !.
fn dupe(a: std.mem.Allocator, s: []const u8) ![]u8 {}A pilha é gratuita
Variáveis locais simples vivem na pilha e não precisam de um Allocator. Você só recorre a um quando um valor precisa sobreviver à função ou crescer durante a execução.
var x: i32 = 5; // stack, no allocationA alocação pode falhar
Solicitar memória do heap pode falhar, portanto as funções de alocação retornam um erro. Você deve tratar uma possível situação OutOfMemory e nunca ignorá-la.
Você é proprietário do que cria
Quem chama o Allocator é proprietário do resultado e precisa liberá-lo. Zig nunca libera sua memória por você, portanto a propriedade é sempre clara.
Troque Allocator livremente
Como o Allocator é um parâmetro, você pode trocar estratégias sem mudar a lógica. Os testes usam um Allocator, e a produção usa outro.
As bibliotecas permanecem transparentes
Uma biblioteca bem escrita nunca oculta uma alocação. Ela aceita seu Allocator, permitindo que você controle a memória até mesmo dentro do código de outras pessoas.
Previsível por projeto
Essa regra faz parte da promessa de Zig de não ter fluxo de controle oculto. A alocação explícita mantém os programas previsíveis e fáceis de analisar. ✅
Verificação rápida
Lembre-se de como uma função Zig obtém a capacidade de alocar.
Recapitulação
Você viu que Zig não tem alocações ocultas: a memória só vem por meio de um Allocator que você fornece, e você é proprietário de tudo o que cria e deve liberá-lo. 🎯
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 “Por que Zig não tem alocações ocultas” é grátis?
Sim — o texto completo de “Por que Zig não tem alocações ocultas” é 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 “Por que Zig não tem alocações ocultas”?
A alocação é sempre recebida explicitamente. 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 1 de 4.
Quanto tempo leva a aula “Por que Zig não tem alocações ocultas”?
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
- Por que Zig não tem alocações ocultas
- A interface de alocação
- alloc, free, create, destroy
- Listas dinâmicas com ArrayList