free() ফাংশন মেমোরি ডি-অ্যালোকেট করতে ব্যবহৃত হয় যখন মেমোরি malloc(), calloc() বা realloc() দিয়ে অ্যালোকেট করা হয়। free()-র সিনট্যাক্স সিম্পল। আমরা শুধু পয়েন্টারের সাথে free ব্যবহার করি। তারপর এটি মেমোরি ক্লিন আপ করে।
free(ptr);
free() কোনো সাইজ প্যারামিটার হিসেবে নেয় না, শুধু পয়েন্টার নেয়। তাহলে প্রশ্ন আসে, free() ফাংশন কীভাবে ব্লক সাইজ জানে ডি-অ্যালোকেট করার জন্য?
যখন ডাইনামিক মেমোরি অ্যালোকেশন টেকনিক ব্যবহার করে মেমোরি অ্যালোকেট করা হয়, তবে এটি প্রকৃত হিপ সেকশনে হয়। এটি অনুরোধকৃত সাইজের চেয়ে এক ওয়ার্ড বড় তৈরি করে। এই অতিরিক্ত ওয়ার্ডটি সাইজ স্টোর করতে ব্যবহৃত হয়। এই সাইজটি free() ব্যবহার করে যখন মেমোরি স্পেস ক্লিয়ার করতে চায়।