কম্পিউটার টিউটোরিয়াল

সি-তে ডাইনামিক মেমোরি অ্যালোকেশন উদাহরণসহ ব্যাখ্যা


সমস্যা

ব্যবহারকারীর ইনপুট দিয়ে n সংখ্যক সংখ্যার সমষ্টি বের করা ডাইনামিক্যালি অ্যালোকেটেড মেমোরি ব্যবহার করে সি প্রোগ্রামিং-এ।

সমাধান

ডাইনামিক মেমোরি অ্যালোকেশন সি প্রোগ্রামারদের রানটাইমে মেমোরি অ্যালোকেট করতে সক্ষম করে।

রানটাইমে ডাইনামিক্যালি মেমোরি অ্যালোকেট করার জন্য আমরা যে বিভিন্ন ফাংশন ব্যবহার করি সেগুলো হলো −

  • malloc () − রানটাইমে বাইটে মেমোরি ব্লক অ্যালোকেট করে।
  • calloc () − রানটাইমে কমপ্যাক্ট ব্লক মেমোরি অ্যালোকেট করে।
  • realloc () − অ্যালোকেটেড মেমোরি কমানো বা বাড়ানোর জন্য ব্যবহৃত হয়।
  • free () − পূর্বে অ্যালোকেটেড মেমোরি স্পেস ডি-অ্যালোকেট করে।

নিচের সি প্রোগ্রামটি এলিমেন্টগুলো দেখাতে এবং n সংখ্যক সংখ্যার সমষ্টি বের করতে।

ডাইনামিক মেমোরি অ্যালোকেশন ফাংশন ব্যবহার করে আমরা মেমোরি বর্জনা কমাতে চেষ্টা করছি।

উদাহরণ

#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 34 12 34 56 The sum of elements is 159 Displaying the cleared out memory location : 12522624 0 12517712 0 56

  1. ইমেজ অ্যারে কী? C++-এ উদাহরণসহ ব্যাখ্যা

  2. jQuery closest() মেথড উদাহরণসহ

  3. গুগল TCMalloc দিয়ে রুবির মেমরি অ্যালোকেশন প্রোফাইলিং

  4. রেডিস GEORADIUSBYMEMBER ব্যবহার: উদাহরণসহ ব্যাবহারিক গাইড