malloc()
৷malloc() ফাংশনটি বাইটের অনুরোধকৃত আকার বরাদ্দ করতে ব্যবহৃত হয় এবং এটি বরাদ্দকৃত মেমরির প্রথম বাইটে একটি পয়েন্টার প্রদান করে। এটি ব্যর্থ হলে এটি নাল পয়েন্টার প্রদান করে।
এখানে C ভাষায় malloc() এর সিনট্যাক্স আছে,
pointer_name = (cast-type*) malloc(size);
এখানে,
-
পয়েন্টার_নাম − পয়েন্টারকে দেওয়া যেকোনো নাম।
-
কাস্ট-টাইপ − যে ডেটাটাইপটিতে আপনি malloc().
দ্বারা বরাদ্দ করা মেমরি কাস্ট করতে চান -
আকার − বাইটে বরাদ্দ করা মেমরির আকার।
এখানে C ভাষায় malloc() এর একটি উদাহরণ,
উদাহরণ
#include <stdio.h> #include <stdlib.h> int main() { int n = 4, i, *p, s = 0; p = (int*) malloc(n * sizeof(int)); if(p == NULL) { printf("\nError! memory not allocated."); exit(0); } printf("\nEnter elements of array : "); for(i = 0; i < n; ++i) { scanf("%d", p + i); s += *(p + i); } printf("\nSum : %d", s); return 0; }
আউটপুট
এখানে আউটপুট
Enter elements of array : 32 23 21 8 Sum : 84
মুক্ত()
ফাংশন free() malloc() দ্বারা বরাদ্দ করা মেমরি ডিললোকেট করতে ব্যবহৃত হয়। এটি পয়েন্টারের মান পরিবর্তন করে না যার মানে এটি এখনও একই মেমরি অবস্থানে নির্দেশ করে।
এখানে C ভাষায় free() এর সিনট্যাক্স রয়েছে,
void free(void *pointer_name);
এখানে,
-
পয়েন্টার_নাম − পয়েন্টারকে দেওয়া যেকোনো নাম।
এখানে C ভাষায় free() এর একটি উদাহরণ দেওয়া হল,
উদাহরণ
#include <stdio.h> #include <stdlib.h> int main() { int n = 4, i, *p, s = 0; p = (int*) malloc(n * sizeof(int)); if(p == NULL) { printf("\nError! memory not allocated."); exit(0); } printf("\nEnter elements of array : "); for(i = 0; i < n; ++i) { scanf("%d", p + i); s += *(p + i); } printf("\nSum : %d", s); free(p); return 0; }
আউটপুট
এখানে আউটপুট
Enter elements of array : 32 23 21 28 Sum : 104