alloc, free, create, destroy
मुख्य allocator operations।
alloc, free, create, destroy, CoddyKit पर Zig Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Zig Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Zig Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
चार मुख्य operations
एक allocator आपको चार महत्वपूर्ण calls देता है: कई items के लिए alloc और free, तथा एक value के लिए create और destroy।
alloc एक slice लौटाता है
Items की एक श्रृंखला माँगने के लिए alloc का उपयोग करें। आप element type और count देते हैं, और आपको उतने ही elements वाली slice मिलती है।
const buf = try a.alloc(u8, 64);alloc विफल हो सकता है
क्योंकि heap समाप्त हो सकता है, alloc एक error union लौटाता है। try keyword आपके लिए OutOfMemory स्थिति को साफ़-सुथरे ढंग से संभालता है।
const list = try a.alloc(i32, 10);free उसे वापस करता है
काम पूरा होने पर आपको मिली हुई ठीक उसी slice के साथ free call करें। इसे भूलने पर GeneralPurposeAllocator leak की सूचना देगा।
a.free(buf);तुरंत defer free करें
एक सामान्य तरीका यह है कि सफल alloc के ठीक बाद defer a.free लिखें, ताकि scope चाहे जैसे समाप्त हो, cleanup अवश्य चले।
const buf = try a.alloc(u8, 64);
defer a.free(buf);एक value के लिए create
जब आपको heap में ठीक एक value चाहिए, तो create का उपयोग करें। यह एक type लेता है और नई memory का single-item pointer लौटाता है।
const node = try a.create(Node);Pointer के माध्यम से लिखें
create आपको एक pointer देता है, इसलिए जिस data की ओर वह संकेत करता है, उसका उपयोग करने से पहले .* के माध्यम से उसमें value सेट करें।
node.* = Node{ .value = 42 };Pointer को destroy करें
बनाई गई value को destroy से release करें और वही pointer पास करें जो create ने लौटाया था। यह create की जोड़ी वाला call है।
a.destroy(node);जोड़े मिलाएँ
नियम सख्त है: alloc की जोड़ी free के साथ और create की जोड़ी destroy के साथ बनती है। इन्हें कभी आपस में न मिलाएँ और ऐसी slice को free न करें जिसे आपने allocate नहीं किया।
उसी allocator से free करें
Memory को हमेशा उसी allocator का उपयोग करके free करें जिसने उसे बनाया था। Allocators को मिलाने से corruption हो सकता है, जिसे compiler पकड़ नहीं सकता।
Errors defer body को छोड़ देते हैं
यदि alloc स्वयं विफल हो जाता है, तो कोई memory बनी ही नहीं, इसलिए free करने के लिए कुछ नहीं है। इसी कारण defer free सफल alloc के बाद आता है। ✅
त्वरित जाँच
हर allocation call को उसके सही release call से मिलाएँ।
पुनरावलोकन
आपने जोड़ियाँ सीखीं: slices के लिए alloc/free और single values के लिए create/destroy; इन्हें हमेशा उसी allocator से release किया जाता है। 🎯
एआई शिक्षक के साथ Zig सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “alloc, free, create, destroy” पाठ निःशुल्क है?
हाँ—“alloc, free, create, destroy” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Zig Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Zig Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“alloc, free, create, destroy” में मैं क्या सीखूँगा?
मुख्य allocator operations। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Zig Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Zig Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Zig Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“alloc, free, create, destroy” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Zig Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Zig Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Zig में Hidden Allocations क्यों नहीं हैं
- Allocator Interface
- alloc, free, create, destroy
- ArrayList से Dynamic Lists