ফ্রি ফাংশন সহ C তে ফ্রি মেমোরি

Free Memory C With Free Function



সি ভাষা তার মেমরি ব্যবস্থাপনা পরিচালনা করার জন্য যথেষ্ট দক্ষ। এর মানে হল যে যখনই আপনি সি -তে যে কোনও ডেটা টাইপের নিয়মিত পরিবর্তনশীল ঘোষণা করেন, প্রোগ্রামিং ল্যাঙ্গুয়েজ নিজেই এই প্রোগ্রামটি সফলভাবে সম্পাদিত হয়ে গেলে এই মেমরিটি ডিলোকেট বা মুক্ত করার জন্য দায়ী। যাইহোক, ডায়নামিক মেমরি বরাদ্দের ক্ষেত্রে, যেহেতু আপনি ম্যানুয়ালি মেমরি বরাদ্দ করছেন, সেজন্য আপনাকে এটি নিজেও ছেড়ে দিতে হবে।

Stdlib.h লাইব্রেরিতে, এই উদ্দেশ্যে পরিবেশন করার জন্য একটি ডেডিকেটেড ফাংশন রয়েছে, যেমন, ফ্রি () ফাংশন। আজ, আমরা সি প্রোগ্রামিং ভাষায় এই ফাংশনটি ব্যবহারের প্রয়োজনীয়তা অন্বেষণ করব। তারপরে, আমরা কয়েকটি উদাহরণ দেখব যাতে এই ফাংশনটি লিনাক্সে সি প্রোগ্রামিং ভাষায় ম্যানুয়ালি মেমরি মুক্ত করার জন্য ব্যবহার করা হয়েছে।







সিস্টেম মেমরি মুক্ত করার জন্য সি -তে ফ্রি ফাংশন ব্যবহারের প্রয়োজন:

আমরা সবাই জানি যে আমাদের কম্পিউটার সিস্টেমে মেমরি সীমিত, যার কারণে আমরা এতে কখনো অসীম প্রোগ্রাম চালাতে পারি না। স্বয়ংক্রিয় মেমরি বরাদ্দের ক্ষেত্রে, কম্পিউটার যখন মেমরি মুক্ত করার যত্ন নেয়, যখন আপনার প্রোগ্রামটি কার্যকর হয়ে যায়। যাইহোক, যখন আমরা মেমরি ম্যানুয়ালি গাদা থেকে বরাদ্দ করি, তখন আমাদের এটিকে এক বা অন্য উপায় থেকে মুক্ত করতে হবে।



অন্যথায়, আমরা অবশেষে স্মৃতিশক্তি কমিয়ে ফেলব, এবং আমরা আমাদের প্রোগ্রামগুলি আর চালাব না। এখানেই stdlib.h লাইব্রেরির ফ্রি () ফাংশন চালু হয়। আমরা রিটার্ন স্টেটমেন্টের ঠিক আগে একটি প্রোগ্রামের শেষে এই ফাংশনটি ব্যবহার করি যাতে আপনার প্রোগ্রামটি বন্ধ হওয়ার আগে হিপ মেমরি কম্পিউটার সিস্টেমে ফিরে আসা উচিত।



ধরুন আপনি আপনার সি কোডগুলি লেখার সময় এই ফাংশনটিকে উপেক্ষা করতে থাকবেন যা বিশেষ করে গতিশীল মেমরি বরাদ্দের দিকে লক্ষ্য করে। সেই ক্ষেত্রে, একটি বিন্দু আসবে যখন আপনি আর আপনার গাদা অ্যাক্সেস করতে পারবেন না কারণ এটি স্মৃতিশক্তি শেষ হয়ে যাবে। এই কারণেই আপাতদৃষ্টিতে কম মূল্যবান ফাংশনটি কখনই ভুলে যাবেন না যখনই আপনি গতিশীলভাবে মেমরি বরাদ্দের দায়িত্ব নিচ্ছেন।





সি প্রোগ্রামিং ভাষায় ফ্রি () ফাংশনের সাধারণ সিনট্যাক্স নিম্নরূপ:

অকার্যকরবিনামূল্যে (অকার্যকর*পিটিআর)

এখানে, ফ্রি () ফাংশনের আগে অকার্যকর কীওয়ার্ড বলে যে এই ফাংশনের রিটার্ন টাইপ অকার্যকর। বন্ধনীগুলির ভিতরের পয়েন্টারটি মেমরির অবস্থানের সাথে মিলে যায় যা ডিলোকেটেড করা প্রয়োজন। নিচের অংশটি এমন কিছু উদাহরণ বর্ণনা করবে যেখানে ফ্রি () ফাংশনটি সি -তে অর্জিত ডায়নামিক মেমরি রিলিজ করার জন্য ব্যবহার করা হয়েছে।



সি -তে ফ্রি ফাংশন ব্যবহারের উদাহরণ:

ফ্রি () ফাংশনটি stdlib.h লাইব্রেরির তিনটি মেমরি বরাদ্দ ফাংশন, যেমন, malloc, calloc, এবং realloc এর সাথে ব্যবহার করা যেতে পারে। আপনার প্রোগ্রামের মৌলিক কার্যকারিতা জানানোর পর এই ফাংশনটি ব্যবহার করা বাধ্যতামূলক, যাতে আপনি প্রোগ্রাম এক্সিকিউশনের সময় গতিশীলভাবে বরাদ্দকৃত হিপ মেমরি আপনার কম্পিউটার সিস্টেমে ফেরত দিতে পারেন। এখন, আসুন আমরা কয়েকটি উদাহরণের দিকে নজর দেই যাতে ফ্রি () ফাংশনটি সি প্রোগ্রামিং ভাষায় malloc এবং calloc ফাংশনের সাথে ব্যবহার করা হয়েছে।

উদাহরণ # 1: C তে কলোকের সাথে ফ্রি ফাংশন ব্যবহার করা:

Calloc () ফাংশনের সাথে ফ্রি () ফাংশন ব্যবহার করার জন্য সি কোডটি নীচের ছবিতে শেয়ার করা হয়েছে:

এই কোডের মূল উদ্দেশ্য ছিল calloc () ফাংশনের সাহায্যে গতিশীলভাবে কিছু মেমরি বরাদ্দ করা। তার জন্য, আমরা ব্যবহারকারী থেকে ইনপুট হিসাবে গতিশীল মেমরির আকার এবং এই গতিশীল মেমরির মান গ্রহণ করেছি। তারপরে, আমরা টার্মিনালে অর্জিত মানগুলি মুদ্রণ করার পরিকল্পনা করেছি। এই সম্পূর্ণ কোডের পরে, আমাদের আমাদের ফ্রি () ফাংশন আছে যা আমাদের সি প্রোগ্রামের এক্সিকিউশনের কারণে বরাদ্দকৃত ডায়নামিক মেমরি ছেড়ে দেবে।

একই কোডের সামান্য পরিবর্তিত সংস্করণটিও নীচে উদ্ধৃত ছবিতে দেখানো হয়েছে:

এই পরিবর্তিত সংস্করণটি শুধুমাত্র ম্যানুয়াল আরম্ভের আগে আমাদের গতিশীলভাবে বরাদ্দকৃত মেমরির মানগুলি মুদ্রণ করার উদ্দেশ্যে। আমরা জানি যে calloc () ফাংশন বাস্তবায়ন হওয়ার আগে শূন্য দিয়ে পুরো মেমরি আরম্ভ করে। যাইহোক, এই কোডে এখানে লক্ষ্য করার মূল বিষয় হল যে যদিও এই কোডটি বেশ কমপ্যাক্ট এবং সহজ ছিল, তবুও আমরা যখন ফ্রি () ফাংশনটি ব্যবহার করেছিলাম তখনই কাঙ্ক্ষিত কার্যকারিতা অর্জন করা হয়েছিল যেটি আমাদের ছিল এই সি প্রোগ্রামটি সম্পাদনের ফলে অর্জিত।

উদাহরণ # 2: C তে malloc এর সাথে ফ্রি ফাংশন ব্যবহার করা:

Malloc () ফাংশনের সাথে ফ্রি () ফাংশন ব্যবহার করার জন্য সি কোডটি নীচে সংযুক্ত ছবিতে ভাগ করা হয়েছে:

এই কোডের মূল উদ্দেশ্য ছিল ম্যালোক () ফাংশনের সাহায্যে গতিশীলভাবে কিছু মেমরি বরাদ্দ করা। এর জন্য, আমরা এই গতিশীল মেমরির মানগুলিকে একটি লুপে বরাদ্দ করেছি। তারপরে, আমরা লুপের জন্য অন্যের সাহায্যে অর্জিত মানগুলি টার্মিনালে মুদ্রণ করার পরিকল্পনা করেছি। এই সম্পূর্ণ কোডের পরে, আমাদের রিটার্ন স্টেটমেন্টের ঠিক আগে আমাদের ফ্রি () ফাংশন আছে যা আমাদের সি প্রোগ্রামের এক্সিকিউশনের ফলে কেবল বরাদ্দকৃত ডায়নামিক মেমরি ছেড়ে দেবে।

উপসংহার:

এই নিবন্ধটি লিনাক্সে সি প্রোগ্রামিং ভাষায় ফ্রি () ফাংশন ব্যবহারের গুরুত্বের উপর জোর দেয়। বেশিরভাগ ব্যবহারকারী বিশ্বাস করেন যে stdlib.h ফাইলের বরাদ্দ ফাংশনগুলি আরও গুরুত্বপূর্ণ; যাইহোক, এই নিবন্ধটি দিয়ে, আপনি স্পষ্টভাবে দেখতে পারেন যে ফ্রি () ফাংশন সমানভাবে গুরুত্বপূর্ণ। এটি আপনাকে গতিশীলভাবে অর্জিত মেমরি মুক্ত করতে সাহায্য করবে এবং নিশ্চিত করবে যে ভবিষ্যতে যখনই আপনি আপনার প্রোগ্রামগুলি চালানোর চেষ্টা করবেন তখন আপনার স্মৃতিশক্তি কখনই শেষ হবে না।