Pourquoi Zig n'a pas d'allocations cachées
L'allocation est toujours fournie explicitement.
Pourquoi Zig n'a pas d'allocations cachées est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.
La mémoire est explicite
Dans Zig, aucune fonction de la bibliothèque standard ne s’empare discrètement de mémoire du tas. Si le code doit allouer, il doit le dire explicitement. 📦
Vous transmettez l’Allocator
Tout ce qui alloue prend un allocator en paramètre. La mémoire ne peut pas apparaître si vous ne fournissez pas à une fonction l’outil nécessaire pour la créer.
fn buildList(allocator: std.mem.Allocator) !void {}Aucun mot-clé new caché
Zig ne possède ni opérateur new ni ramasse-miettes. Rien n’accède au tas dans votre dos comme le font de nombreux langages.
Pourquoi c’est important
Comme l’allocation est visible, vous savez toujours d’où vient la mémoire. C’est essentiel pour les puces embarquées, les noyaux et les boucles de jeu exigeantes.
Lire la signature
Une fonction susceptible d’allouer l’indique dans sa signature : elle prend un allocator et renvoie généralement une union d’erreurs avec !.
fn dupe(a: std.mem.Allocator, s: []const u8) ![]u8 {}La pile est gratuite
Les variables locales ordinaires vivent sur la pile et n’ont besoin d’aucun allocator. Vous n’en utilisez un que lorsqu’une valeur doit survivre à sa fonction ou grandir pendant l’exécution.
var x: i32 = 5; // stack, no allocationL’allocation peut échouer
Demander de la mémoire sur le tas peut échouer, c’est pourquoi les fonctions d’allocation renvoient une erreur. Vous devez gérer un éventuel OutOfMemory et ne jamais l’ignorer.
Vous êtes propriétaire de ce que vous créez
Quiconque appelle l’allocator est propriétaire du résultat et doit le libérer. Zig ne libère jamais votre mémoire à votre place : la propriété est donc toujours claire.
Échanger librement les allocators
Comme l’allocator est un paramètre, vous pouvez changer de stratégie sans modifier la logique. Les tests utilisent un allocator, la production un autre.
Les bibliothèques restent transparentes
Une bibliothèque bien écrite ne dissimule jamais une allocation. Elle accepte votre allocator, ce qui vous permet de contrôler la mémoire, même dans le code d’autrui.
Prévisible par conception
Cette règle fait partie de la promesse de Zig : aucun flux de contrôle caché. Une allocation explicite rend les programmes prévisibles et faciles à comprendre. ✅
Vérification rapide
Rappelez-vous comment une fonction Zig obtient le pouvoir d’allouer.
Récapitulatif
Vous avez vu que Zig n’effectue aucune allocation cachée : la mémoire provient uniquement d’un allocator que vous transmettez, et vous êtes propriétaire de tout ce que vous créez et libérez. 🎯
Apprends Zig avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Pourquoi Zig n'a pas d'allocations cachées » est-elle gratuite ?
Oui — le texte complet de « Pourquoi Zig n'a pas d'allocations cachées » 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 « Pourquoi Zig n'a pas d'allocations cachées » ?
L'allocation est toujours fournie explicitement. 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 1 sur 4.
Combien de temps prend la leçon « Pourquoi Zig n'a pas d'allocations cachées » ?
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
- Pourquoi Zig n'a pas d'allocations cachées
- L'interface d'allocation
- alloc, free, create, destroy
- Listes dynamiques avec ArrayList