সি/সি++ লাইব্রেরি ফাংশন void free(void *ptr) পূর্বে calloc, malloc, বা realloc কল দিয়ে অ্যালোকেট করা মেমরি ডি-অ্যালোকেট করে। free() ফাংশনের ডিক্লেরেশন নিচে দেওয়া হলো:
void free(void *ptr)
এই ফাংশন একটি পয়েন্টার ptr নেয়। এটি malloc, calloc বা realloc দিয়ে পূর্বে অ্যালোকেট করা একটি মেমরি ব্লকের পয়েন্টার যা ডি-অ্যালোকেট করা হবে। যদি নাল পয়েন্টার আর্গুমেন্ট হিসেবে পাস করা হয়, তবে কোনো অ্যাকশন ঘটে না।
উদাহরণ
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
char *str;
/* প্রাথমিক মেমরি অ্যালোকেশন */
str = (char *) malloc(15);
strcpy(str, "tutorialspoint");
cout << "String = " << str << ", Address = " << &str << endl;
/* মেমরি রি-অ্যালোকেট করা */
str = (char *) realloc(str, 25);
strcat(str, ".com");
cout << "String = " << str << ", Address = " << &str << endl;
/* অ্যালোকেট করা মেমরি ডি-অ্যালোকেট করা */
free(str);
return 0;
}
আউটপুট
String = tutorialspoint, Address = 0x22fe38 String = tutorialspoint.com, Address = 0x22fe38