0Pricing
Zig Academy · Ders

alloc, free, create, destroy

Temel ayırıcı işlemleri.

alloc, free, create, destroy, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Zig Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Zig Academy kursu toplamda 4 dersten oluşur.

Dört Temel İşlem

Bir allocator size dört temel çağrı sunar: birçok öğe için alloc ve free, tek bir değer için create ve destroy.

alloc Bir Slice Döndürür

Bir dizi öğe istemek için alloc kullanın. Öğe türünü ve sayıyı geçirirsiniz; karşılığında bu sayıda öğe içeren bir slice alırsınız.

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

alloc Başarısız Olabilir

Heap tükenebileceğinden alloc bir error union döndürür. try anahtar sözcüğü OutOfMemory durumunu sizin için düzgün biçimde ele alır.

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

free Belleği Geri Verir

İşiniz bittiğinde elde ettiğiniz tam slice ile free çağrısı yapın. Bunu unutursanız GeneralPurposeAllocator bir leak bildirir.

a.free(buf);

defer free İşlemini Hemen Yazın

Yaygın yaklaşım, başarılı bir alloc işleminden hemen sonra defer a.free yazmaktır; böylece scope nasıl sona ererse ersin temizleme çalışır.

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

Tek Bir Değer İçin create

Tam olarak tek bir heap değerine ihtiyaç duyduğunuzda create kullanın. Bir tür alır ve yeni bellek üzerinde tek öğelik bir pointer döndürür.

const node = try a.create(Node);

Pointer Üzerinden Yazın

create size bir pointer verir; bu nedenle işaret ettiği veriyi kullanmadan önce değeri .* ile onun üzerinden ayarlarsınız.

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

Pointer'ı destroy Edin

Oluşturulan bir değeri, create'in döndürdüğü aynı pointer'ı geçirerek destroy ile serbest bırakın. Bu, create çağrısının eşidir.

a.destroy(node);

Çiftleri Eşleştirin

Kural katıdır: alloc free ile, create destroy ile eşleşir. Bu çiftleri asla karıştırmayın ve allocate etmediğiniz bir slice'ı free etmeyin.

Aynı Allocator ile Free Edin

Belleği her zaman onu üreten same allocator'ı kullanarak free edin. Allocator'ları karıştırmak, compiler'ın yakalayamayacağı bozulmalara yol açar.

Hatalar defer Gövdesini Atlar

alloc işleminin kendisi fails ederse bellek oluşturulmamıştır; dolayısıyla free edilecek bir şey yoktur. defer free işleminin başarılı alloc sonrasına yazılmasının nedeni budur. ✅

Hızlı Kontrol

Her tahsis çağrısını doğru bırakma çağrısıyla eşleştirin.

Özet

Çiftleri öğrendiniz: slice'lar için alloc/free, tek değerler için create/destroy; her zaman aynı allocator ile serbest bırakılırlar. 🎯

Sıkça Sorulan Sorular

“alloc, free, create, destroy” dersi ücretsiz mi?

Evet — “alloc, free, create, destroy” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Zig Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Zig Academy kursu toplamda 4 dersten oluşur.

“alloc, free, create, destroy” dersinde ne öğreneceğim?

Temel ayırıcı işlemleri. Zig Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Zig Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Zig Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“alloc, free, create, destroy” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Zig Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Zig Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Zig'de Gizli Bellek Ayırma Neden Yoktur?
  2. Ayırıcı Arayüzü
  3. alloc, free, create, destroy
  4. ArrayList ile Dinamik Listeler
← Zig Academy Sayfasına Dön