কম্পিউটার

C প্রোগ্রামিং এর malloc ফাংশন ব্যাখ্যা কর


সমস্যা

গতিশীল মেমরি বরাদ্দকরণ ফাংশন ব্যবহার করে উপাদানগুলি প্রদর্শন এবং যোগ করার জন্য একটি সি প্রোগ্রাম লিখুন।

সমাধান

C-তে, লাইব্রেরি ফাংশন malloc রানটাইমে বাইটে মেমরির একটি ব্লক বরাদ্দ করে। এটি একটি অকার্যকর পয়েন্টার প্রদান করে, যা বরাদ্দকৃত মেমরির বেস ঠিকানা নির্দেশ করে এবং এটি মেমরিটিকে অপ্রচলিত করে রাখে।

সিনট্যাক্স

void *malloc (size in bytes)

উদাহরণস্বরূপ,

  • int *ptr;

    ptr =(int * ) malloc (1000);

  • int *ptr;

    ptr =(int * ) malloc (n * sizeof (int));

দ্রষ্টব্য − এটি NULL ফেরত দেয়, যদি মেমরি মুক্ত না হয়।

উদাহরণ

#include<stdio.h>
#include<stdlib.h>
void main(){
   //Declaring variables and pointers,sum//
   int numofe,i,sum=0;
   int *p;
   //Reading number of elements from user//
   printf("Enter the number of elements : ");
   scanf("%d",&numofe);
   //Calling malloc() function//
   p=(int *)malloc(numofe*sizeof(int));
   /*Printing O/p - We have to use if statement because we have to check if memory has been successfully allocated/reserved or not*/
   if (p==NULL){
      printf("Memory not available");
      exit(0);
   }
   //Printing elements//
   printf("Enter the elements : \n");
   for(i=0;i<numofe;i++){
      scanf("%d",p+i);
      sum=sum+*(p+i);
   }
   printf("\nThe sum of elements is %d",sum);
   free(p);//Erase first 2 memory locations//
   printf("\nDisplaying the cleared out memory location : \n");
   for(i=0;i<numofe;i++){
      printf("%d\n",p[i]);//Garbage values will be displayed//
   }
}

আউটপুট

Enter the number of elements : 5
Enter the elements :
23
45
65
12
23

The sum of elements is 168
Displaying the cleared out memory location :
10753152
0
10748240
0
23

  1. সি প্রোগ্রামিং ভাষায় পয়েন্টারগুলির বিন্যাস ব্যাখ্যা কর

  2. সি ভাষায় মনোলিথিক ও মডুলার প্রোগ্রামিং ব্যাখ্যা কর

  3. C গ্রাফিক্সে bar() ফাংশন

  4. পাইথনে % অপারেটরের ফাংশন ব্যাখ্যা কর।