مفت فنکشن کے ساتھ سی میں مفت میموری۔

Free Memory C With Free Function



سی زبان اس کی یادداشت کے انتظام کو سنبھالنے کے لیے کافی موثر ہے۔ اس کا مطلب یہ ہے کہ جب بھی آپ C میں کسی بھی ڈیٹا ٹائپ کے ریگولر متغیر کا اعلان کرتے ہیں ، پروگرامنگ لینگویج خود اس میموری کو ختم کرنے یا جاری کرنے کی ذمہ دار ہوتی ہے جب آپ کا پروگرام کامیابی سے چلایا جاتا ہے۔ تاہم ، متحرک میموری مختص کرنے کی صورت میں ، چونکہ آپ میموری کو دستی طور پر مختص کر رہے ہیں ، اسی لیے آپ کو اسے خود بھی جاری کرنا پڑے گا۔

stdlib.h لائبریری میں ، اس مقصد کو پورا کرنے کے لیے ایک سرشار فنکشن ہے ، یعنی مفت () فنکشن۔ آج ، ہم اس پروگرام کو سی پروگرامنگ زبان میں استعمال کرنے کی ضرورت دریافت کریں گے۔ اس کے بعد ، ہم چند مثالیں دیکھیں گے جن میں یہ فنکشن لینکس میں سی پروگرامنگ زبان میں دستی طور پر میموری کو آزاد کرنے کے لیے استعمال کیا گیا ہے۔







سسٹم میموری کو آزاد کرنے کے لیے سی میں مفت فنکشن استعمال کرنے کی ضرورت:

ہم سب جانتے ہیں کہ ہمارے کمپیوٹر سسٹم کی میموری محدود ہے ، جس کی وجہ سے ہم اس میں لامحدود پروگرام کبھی نہیں چلا سکتے۔ خودکار میموری مختص کرنے کی صورت میں ، کمپیوٹر میموری کو آزاد کرنے کا خیال رکھتا ہے جب آپ کا پروگرام مکمل ہو جائے۔ تاہم ، جب ہم میموری کو دستی طور پر ڈھیر سے مختص کرتے ہیں تو ہمیں اسے کسی نہ کسی طریقے سے آزاد کرنا پڑتا ہے۔



بصورت دیگر ، ہم بالآخر یادداشت سے محروم ہوجائیں گے ، اور ہم اپنے پروگراموں کو مزید نہیں چلائیں گے۔ یہ وہ جگہ ہے جہاں stdlib.h لائبریری کا مفت () فنکشن چلتا ہے۔ ہم اس فنکشن کو پروگرام کے اختتام پر واپسی کے بیان سے پہلے استعمال کرتے ہیں تاکہ آپ کے پروگرام کے ختم ہونے سے پہلے ہیپ میموری کمپیوٹر سسٹم میں واپس آ جائے۔



فرض کریں کہ آپ اپنے C کوڈز لکھتے ہوئے اس فنکشن کو نظر انداز کرتے رہیں گے جو کہ خاص طور پر متحرک میموری الاٹمنٹ کی طرف ھیں۔ اس صورت میں ، ایک نقطہ آئے گا جب آپ مزید اپنے ڈھیر تک رسائی حاصل نہیں کر سکتے کیونکہ اس کی یادداشت ختم ہو جائے گی۔ یہی وجہ ہے کہ بظاہر کم قیمتی فنکشن کو کبھی بھی فراموش نہیں کرنا چاہیے جب بھی آپ متحرک طور پر میموری مختص کرنے کی ذمہ داری لے رہے ہوں۔





سی پروگرامنگ زبان میں مفت () فنکشن کا عمومی نحو اس طرح ہے:

باطلمفت (باطل*پی ٹی آر)

یہاں ، مفت () فنکشن سے پہلے باطل کلیدی لفظ بتاتا ہے کہ اس فنکشن کی واپسی کی قسم باطل ہے۔ بریکٹ کے اندر پوائنٹر میموری لوکیشن سے مطابقت رکھتا ہے جسے ڈیلیکیٹ کرنے کی ضرورت ہے۔ مندرجہ ذیل سیکشن کچھ مثالوں کو بیان کرے گا جس میں مفت () فنکشن کو C میں حاصل کردہ متحرک میموری کو جاری کرنے کے لیے استعمال کیا گیا ہے۔



C میں مفت فنکشن استعمال کرنے کی مثالیں:

مفت () فنکشن stdlib.h لائبریری کے تینوں میموری مختص افعال کے ساتھ استعمال کیا جا سکتا ہے ، یعنی malloc ، calloc ، اور realloc. اپنے پروگرام کی بنیادی فعالیت بتانے کے بعد اس فنکشن کو استعمال کرنا لازمی ہے تاکہ آپ وہ ڈھیر میموری جو آپ نے پروگرام کے دوران متحرک طور پر مختص کی ہے اپنے کمپیوٹر سسٹم کے حوالے کر سکیں۔ اب ، آئیے چند مثالوں پر ایک نظر ڈالتے ہیں جس میں مفت () فنکشن کو سی پروگرامنگ زبان میں malloc اور calloc افعال کے ساتھ استعمال کیا گیا ہے۔

مثال # 1: C میں کالوک کے ساتھ مفت فنکشن کا استعمال:

کالوک () فنکشن کے ساتھ مفت () فنکشن استعمال کرنے کے لیے سی کوڈ نیچے دی گئی تصویر میں شیئر کیا گیا ہے۔

اس کوڈ کا بنیادی مقصد کالک () فنکشن کی مدد سے کچھ میموری کو متحرک طور پر تفویض کرنا تھا۔ اس کے لیے ، ہم نے متحرک میموری کا سائز اور اس متحرک میموری کی اقدار کو صارف سے ان پٹ کے طور پر لیا ہے۔ پھر ، ہم نے حاصل کردہ اقدار کو ٹرمینل پر پرنٹ کرنے کا ارادہ کیا۔ اس پورے کوڈ کے بعد ، ہمارے پاس ہمارا مفت () فنکشن ہے جو ہمارے سی پروگرام کے نفاذ کی وجہ سے مختص متحرک میموری کو جاری کرے گا۔

اسی کوڈ کا تھوڑا سا ترمیم شدہ ورژن بھی نیچے دی گئی تصویر میں دکھایا گیا ہے:

اس ترمیم شدہ ورژن کا مقصد صرف اس کی دستی ابتدا سے پہلے ہماری متحرک طور پر مختص کردہ میموری اقدار کو پرنٹ کرنا ہے۔ ہم جانتے ہیں کہ کالوک () فنکشن مکمل ہونے سے پہلے صفر کے ساتھ پوری میموری کو شروع کرتا ہے۔ تاہم ، اس کوڈ میں یہاں توجہ دینے کی اہم بات یہ ہے کہ اگرچہ یہ کوڈ کافی کمپیکٹ اور سادہ تھا ، پھر بھی ہم نے مفت () فنکشن کا استعمال کیا جب مطلوبہ فعالیت حاصل ہو گئی صرف ڈھیر میموری کو چھوڑنے کے لیے جو ہمارے پاس تھی اس سی پروگرام کو انجام دینے کے نتیجے میں حاصل کیا گیا۔

مثال # 2: C میں malloc کے ساتھ مفت فنکشن کا استعمال:

malloc () فنکشن کے ساتھ مفت () فنکشن استعمال کرنے کا سی کوڈ نیچے دی گئی تصویر میں شیئر کیا گیا ہے۔

اس کوڈ کا بنیادی مقصد malloc () فنکشن کی مدد سے متحرک طور پر کچھ میموری تفویض کرنا تھا۔ اس کے لیے ، ہم نے اس متحرک میموری کی اقدار کو ایک لوپ میں تفویض کیا ہے۔ پھر ، ہم نے حاصل کردہ اقدار کو ٹرمینل پر دوسرے کی مدد سے لوپ پرنٹ کرنے کا ارادہ کیا۔ اس پورے کوڈ کے بعد ، ہمارے پاس واپسی کے بیان سے پہلے ہمارا مفت () فنکشن ہے جو ہمارے سی پروگرام کے نفاذ کے نتیجے میں مختص شدہ متحرک میموری کو جاری کرے گا۔

نتیجہ:

اس مضمون نے لینکس میں سی پروگرامنگ زبان میں مفت () فنکشن استعمال کرنے کی اہمیت پر زور دیا۔ زیادہ تر صارفین کا خیال ہے کہ stdlib.h فائل کے مختص افعال زیادہ اہم ہیں۔ تاہم ، اس مضمون کو دیکھ کر ، آپ واضح طور پر دیکھ سکتے ہیں کہ مفت () فنکشن بھی اتنا ہی اہم ہے۔ یہ آپ کو متحرک طور پر حاصل کردہ میموری کو جاری کرنے میں مدد دے گا اور اس بات کو یقینی بنائے گا کہ جب بھی آپ مستقبل میں اپنے پروگراموں پر عمل کرنے کی کوشش کریں گے تو آپ کی یادداشت ختم نہیں ہوگی۔