FixedBufferAllocator sans tas
Allouez depuis un tampon de pile.
FixedBufferAllocator sans tas 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.
Allouer sans le tas
Un FixedBufferAllocator fournit de la mémoire à partir d’un tampon que vous possédez déjà. Aucun tas, aucun appel au système d’exploitation : uniquement vos propres octets. 🧱
Vous fournissez le tampon
Vous commencez par un tableau ordinaire, souvent situé sur la pile. Cette zone fixe constitue tout le réservoir que l’allocateur est autorisé à distribuer.
var buffer: [1024]u8 = undefined;Envelopper le tampon
Transmettez votre tampon à init pour créer l’allocateur. Désormais, chaque allocation provient exactement de ces octets.
var fba = std.heap.FixedBufferAllocator.init(&buffer);Obtenir son allocateur
Appelez allocator() comme d’habitude pour obtenir l’interface. Le code qui l’utilise ne peut pas savoir qu’il repose sur un tampon fixe plutôt que sur le tas.
const a = fba.allocator();Il avance un pointeur
L’allocation consiste simplement à avancer un décalage dans le tampon. Elle est donc extrêmement rapide et son coût est parfaitement prévisible.
Il peut arriver à saturation
Le tampon a une taille fixe : une demande peut donc échouer avec OutOfMemory lorsqu’il ne reste plus de place. Vous la traitez comme toute erreur d’allocation.
Réinitialiser pour réutiliser
Appelez reset() pour ramener le décalage au début. Le même tampon est maintenant de nouveau vide, prêt pour une nouvelle série d’allocations.
fba.reset();Idéal pour l’embarqué
Comme aucun tas n’intervient, cet allocateur convient aux systèmes embarqués, aux noyaux et à tout environnement où la mémoire dynamique est indisponible ou interdite.
Tenir compte de la durée de vie
Si le tampon se trouve sur la pile, sa mémoire disparaît lorsque la fonction retourne. Ne laissez jamais les allocations qui en proviennent survivre à ce tampon.
L’associer à une arène
Une astuce courante consiste à envelopper un tampon fixe dans une arène, ce qui fournit une libération globale pour une zone qui ne touche jamais le tas.
Configuration typique
La recette est courte : déclarer un tampon, initialiser l’allocateur dessus, puis allouer jusqu’à saturation et éventuellement effectuer un reset pour recommencer.
var buf: [256]u8 = undefined;
var fba = std.heap.FixedBufferAllocator.init(&buf);
const a = fba.allocator();Vérification rapide
Réfléchissez à l’endroit où un FixedBufferAllocator trouve sa mémoire.
Récapitulatif
Vous avez découvert le FixedBufferAllocator : il fournit de la mémoire depuis un tampon qui vous appartient, ne touche jamais au tas et se réinitialise en une seule étape peu coûteuse. 🎯
Questions Fréquemment Posées
La leçon « FixedBufferAllocator sans tas » est-elle gratuite ?
Oui — le texte complet de « FixedBufferAllocator sans tas » 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 « FixedBufferAllocator sans tas » ?
Allouez depuis un tampon de pile. 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 « FixedBufferAllocator sans tas » ?
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
- GeneralPurposeAllocator pour la sécurité en débogage
- Allocateurs d’arène pour une libération globale
- FixedBufferAllocator sans tas
- Choisir un allocateur selon la charge