0Pricing
Zig Academy · Lezione

alloc, free, create, destroy

Le operazioni fondamentali dell'allocatore

alloc, free, create, destroy è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.

Quattro operazioni fondamentali

Un allocatore offre quattro chiamate fondamentali: alloc e free per più elementi, create e destroy per un singolo valore.

alloc restituisce una slice

Usi alloc per richiedere una sequenza di elementi. Si passano il tipo degli elementi e una quantità, ottenendo una slice contenente quel numero di elementi.

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

alloc può fallire

Poiché l'heap può esaurirsi, alloc restituisce un'unione di errori. La parola chiave try gestisce in modo ordinato il caso OutOfMemory.

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

free la restituisce

Quando ha finito, chiami free con la slice esatta ottenuta. Se lo dimentica, GeneralPurposeAllocator segnalerà un leak.

a.free(buf);

defer free subito

È buona pratica scrivere defer a.free subito dopo un alloc riuscito, così la pulizia viene eseguita indipendentemente da come termina lo scope.

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

create per un singolo valore

Quando serve esattamente un valore nell'heap, si usa create. Richiede un tipo e restituisce un puntatore a un singolo elemento nella memoria appena allocata.

const node = try a.create(Node);

Scrivere tramite il puntatore

create restituisce un puntatore, quindi si imposta il valore tramite .* prima di usare i dati a cui punta.

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

destroy del puntatore

Si rilascia un valore creato con destroy, passando lo stesso puntatore restituito da create. È la chiamata complementare a create.

a.destroy(node);

Abbinare le coppie

La regola è rigida: alloc va abbinato a free e create a destroy. Non li scambi mai e non liberi mai una slice che non hai allocato.

Liberare con lo stesso allocatore

Libera sempre la memoria usando lo stesso allocatore che l'ha prodotta. Mescolare allocatori può causare corruzione che il compilatore non è in grado di rilevare.

Gli errori saltano il corpo di defer

Se alloc fallisce, non è stata creata alcuna memoria, quindi non c'è nulla da liberare. Per questo defer free va scritto dopo un alloc riuscito. ✅

Verifica rapida

Abbini ogni chiamata di allocazione alla corretta chiamata di rilascio.

Riepilogo

Ha imparato le coppie: alloc/free per le slice e create/destroy per i valori singoli, sempre rilasciati con lo stesso allocatore. 🎯

Domande Frequenti

La lezione «alloc, free, create, destroy» è gratuita?

Sì — il testo completo di «alloc, free, create, destroy» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.

Cosa imparerò in «alloc, free, create, destroy»?

Le operazioni fondamentali dell'allocatore Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Zig Academy?

Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «alloc, free, create, destroy»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Zig Academy?

Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Perché Zig non ha allocazioni nascoste
  2. L'interfaccia dell'allocatore
  3. alloc, free, create, destroy
  4. Liste dinamiche con ArrayList
← Torna a Zig Academy