0Pricing
Zig Academy · Leçon

alloc, free, create, destroy

Les opérations essentielles de l'allocateur.

alloc, free, create, destroy est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.

Quatre opérations essentielles

Un allocateur vous fournit quatre appels essentiels : alloc et free pour plusieurs éléments, create et destroy pour une seule valeur.

alloc renvoie une tranche

Utilisez alloc pour demander une suite d’éléments. Vous indiquez le type des éléments et leur nombre, puis vous obtenez une tranche contenant ce nombre d’éléments.

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

alloc peut échouer

Comme le tas peut être épuisé, alloc renvoie une union d’erreur. Le mot-clé try gère proprement le cas OutOfMemory pour vous.

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

free la restitue

Lorsque vous avez terminé, appelez free avec la tranche exacte que vous avez obtenue. Si vous l’oubliez, GeneralPurposeAllocator signalera une fuite.

a.free(buf);

Différer free immédiatement

Une habitude courante consiste à écrire defer a.free juste après un appel réussi à alloc, afin que le nettoyage ait lieu quelle que soit la manière dont la portée se termine.

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

create pour une valeur

Lorsque vous avez besoin d’exactement une valeur sur le tas, utilisez create. Il prend un type et renvoie un pointeur vers un seul élément dans une mémoire nouvellement allouée.

const node = try a.create(Node);

Écrire via le pointeur

create vous fournit un pointeur : vous définissez donc la valeur au moyen de .* avant d’utiliser les données vers lesquelles il pointe.

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

destroy le pointeur

Libérez une valeur créée avec destroy en lui transmettant le même pointeur que celui renvoyé par create. C’est l’appel complémentaire de create.

a.destroy(node);

Associer les paires

La règle est stricte : alloc va avec free, et create va avec destroy. Ne les intervertissez jamais et ne libérez jamais une tranche que vous n’avez pas allouée.

Libérer avec le même allocateur

Libérez toujours la mémoire avec le même allocateur que celui qui l’a produite. Mélanger des allocateurs entraîne une corruption que le compilateur ne peut pas détecter.

Les erreurs ignorent le corps de defer

Si alloc échoue, aucune mémoire n’a été créée : il n’y a donc rien à libérer. C’est pourquoi defer free vient après un appel réussi à alloc. ✅

Vérification rapide

Associez chaque appel d’allocation à l’appel de libération correspondant.

Récapitulatif

Vous avez appris les paires suivantes : alloc/free pour les tranches et create/destroy pour les valeurs uniques, toujours libérées avec le même allocateur. 🎯

Questions Fréquemment Posées

La leçon « alloc, free, create, destroy » est-elle gratuite ?

Oui — le texte complet de « alloc, free, create, destroy » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « alloc, free, create, destroy » ?

Les opérations essentielles de l'allocateur. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Zig Academy ?

Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « alloc, free, create, destroy » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?

Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi Zig n'a pas d'allocations cachées
  2. L'interface d'allocation
  3. alloc, free, create, destroy
  4. Listes dynamiques avec ArrayList
← Retour à Zig Academy