0Pricing
Zig Academy · Pelajaran

Pengalokasi Pengujian Menangkap Kebocoran

Deteksi bug memori secara otomatis.

Pengalokasi Pengujian Menangkap Kebocoran adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Memory Bugs Are Sneaky

A program can pass every value check yet still leak memory by forgetting to free it. Zig gives tests a tool to catch exactly that.

Meet testing.allocator

Inside a test you get a special allocator at std.testing.allocator. Use it anywhere your code needs to allocate heap memory.

const a = std.testing.allocator;

It Tracks Every Allocation

The testing.allocator remembers every block it hands out. When the test ends it checks whether each one was given back.

A Leak Fails the Test

If even one allocation is never freed, the testing.allocator reports a leak and the test fails, pointing you at the missing free.

Allocate in a Test

Ask the allocator for memory just like in real code. Here alloc reserves a buffer of ten bytes that you must release later.

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

Free with defer

Pair each allocation with a defer that frees it. The cleanup is scheduled immediately, so it runs even if the test fails partway.

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

Forget free, Catch the Bug

Drop that defer and the test fails with a leak report. This is how the allocator turns a silent bug into a loud, fixable failure.

It Also Spots Double-Frees

The same checked allocator catches freeing the same block twice or freeing memory it never gave you, which are classic crashes.

Pass It Into Your Code

Functions that allocate take an allocator parameter. In a test, hand them testing.allocator so their memory is tracked too.

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

Clean Up What You Build

Whatever your function allocated, the test must release. Add a defer right after the call to free or deinit the returned data.

defer list.deinit();

Free Memory Testing

Because leaks fail the build, every passing test proves its memory was balanced. That confidence is unique to testing.allocator.

Quick Check

You run a test that allocates with std.testing.allocator but never frees the buffer. What happens?

Recap

You used std.testing.allocator to catch leaks and double-frees for free. Pair each alloc with a defer free and your tests stay clean. ✅

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pengalokasi Pengujian Menangkap Kebocoran” gratis?

Ya — teks lengkap “Pengalokasi Pengujian Menangkap Kebocoran” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pengalokasi Pengujian Menangkap Kebocoran”?

Deteksi bug memori secara otomatis. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Zig Academy?

Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Pengalokasi Pengujian Menangkap Kebocoran” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?

Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menulis Blok test
  2. Penegasan dengan std.testing
  3. Pengalokasi Pengujian Menangkap Kebocoran
  4. Menjalankan dan Memfilter Pengujian
← Kembali ke Zig Academy