0Pricing
Zig Academy · Leçon

L'allocateur de test détecte les fuites

Détectez automatiquement les erreurs de mémoire.

L'allocateur de test détecte les fuites 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.

Les bogues mémoire sont sournois

Un programme peut réussir toutes les vérifications de valeurs et malgré tout provoquer une fuite mémoire si vous oubliez de libérer la mémoire. Zig fournit aux tests un outil pour détecter précisément ce problème.

Découvrez testing.allocator

Dans un test, vous disposez d’un allocateur spécial accessible via std.testing.allocator. Utilisez-le partout où votre code doit allouer de la mémoire sur le tas.

const a = std.testing.allocator;

Chaque allocation est suivie

testing.allocator mémorise chaque bloc qu’il fournit. À la fin du test, il vérifie que chacun lui a été rendu.

Une fuite fait échouer le test

Si une seule allocation n’est jamais libérée, testing.allocator signale une fuite et le test échoue en vous indiquant l’appel à free manquant.

Allouer dans un test

Demandez de la mémoire à l’allocateur comme dans du code réel. Ici, alloc réserve un tampon de dix octets que vous devrez libérer ensuite.

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

Libérer avec defer

Associez chaque allocation à un defer qui la libère. Le nettoyage est planifié immédiatement et s’exécute donc même si le test échoue en cours de route.

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

Oublier free pour détecter le bogue

Supprimez ce defer et le test échoue avec un rapport de fuite. C’est ainsi que l’allocateur transforme un bogue silencieux en échec visible et corrigeable.

Il détecte aussi les doubles libérations

Le même allocateur vérifié détecte la libération deux fois du même bloc ou la libération d’une mémoire qu’il ne vous a jamais fournie, deux causes classiques de plantage.

Le transmettre à votre code

Les fonctions qui effectuent des allocations acceptent un paramètre d’allocateur. Dans un test, transmettez-leur testing.allocator afin que leur mémoire soit également suivie.

const list = try buildList(std.testing.allocator);

Nettoyer ce que vous créez

Le test doit libérer tout ce que votre fonction a alloué. Ajoutez un defer juste après l’appel pour libérer ou désinitialiser les données renvoyées.

defer list.deinit();

Tester la libération de la mémoire

Comme les fuites font échouer la compilation, chaque test réussi prouve que sa mémoire a été correctement équilibrée. Cette garantie est propre à testing.allocator.

Vérification rapide

Vous exécutez un test qui alloue de la mémoire avec std.testing.allocator, mais ne libère jamais le tampon. Que se passe-t-il ?

Récapitulatif

Vous avez utilisé std.testing.allocator pour détecter gratuitement les fuites et les doubles libérations. Associez chaque alloc à un defer free pour que vos tests restent propres. ✅

Questions Fréquemment Posées

La leçon « L'allocateur de test détecte les fuites » est-elle gratuite ?

Oui — le texte complet de « L'allocateur de test détecte les fuites » 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 « L'allocateur de test détecte les fuites » ?

Détectez automatiquement les erreurs de mémoire. 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 « L'allocateur de test détecte les fuites » ?

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. Écrire des blocs test
  2. Assertions avec std.testing
  3. L'allocateur de test détecte les fuites
  4. Exécuter et filtrer les tests
← Retour à Zig Academy