কম্পিউটার

সি ভাষায় ডায়নামিক মেমরি বরাদ্দের উদাহরণ প্রোগ্রাম


সমস্যা

C-তে গতিশীল মেমরি বরাদ্দ ব্যবহার করে একটি অ্যারে থেকে সর্বাধিক এবং সর্বনিম্ন খুঁজে বের করুন।

সমাধান

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

বিভিন্ন ফাংশন যা আমরা রান টাইমে গতিশীলভাবে মেমরি বরাদ্দ করতে ব্যবহার করি তা হল −

  • malloc () - রানটাইমে বাইটে মেমরির একটি ব্লক বরাদ্দ করে।

  • কলক () - রানটাইমে মেমরির অবিচ্ছিন্ন ব্লকগুলি বরাদ্দ করে।

  • realloc () − বরাদ্দ করা মেমরি কমাতে (বা) প্রসারিত করতে ব্যবহৃত হয়।

  • বিনামূল্যে () − পূর্বে বরাদ্দকৃত মেমরির স্থান ডিলকেট করে।

ডাইনামিক মেমরি বরাদ্দ ব্যবহার করে একটি অ্যারেতে সর্বাধিক এবং সর্বনিম্ন সংখ্যা সন্ধান করা

একটি অ্যারের মধ্যে সর্বাধিক উপাদান খুঁজে পাওয়ার যুক্তি -

প্রথমে অ্যারেতে মেমরি বরাদ্দ করুন

p=(int*)malloc(n*sizeof(int)); //dynamic memory allocation
for(i=0;i<n;i++){
   scanf("%d",p+i);
   if(*(p+i)>max) //finding max element
      max=*(p+i);
}

একটি অ্যারেতে ন্যূনতম উপাদান খুঁজে পাওয়ার যুক্তি −

for(i=0;i<n;i++){
   scanf("%d",p+i);
   if(*(p+i)<min) //finding min element
      min=*(p+i);
}

উদাহরণ

#include<stdio.h>
int main(){
   int *p,n,i,max=-32768,min=32767;
   printf("\n enter size:");
   scanf("%d",&n);
   p=(int*)malloc(n*sizeof(int)); //dynamic memory allocation
   printf("\n enter elements:");
   for(i=0;i<n;i++){
      scanf("%d",p+i);
      if(*(p+i)>max) //finding max element
         max=*(p+i);
      if(*(p+i)<min) //finding min element
         min=*(p+i);
   }
   printf("\n maximum=%d\n minimum=%d",max,min);
   free(p);
}

আউটপুট

enter size:
enter elements:
maximum=-32768
minimum=32767

  1. সি ভাষায় উদাহরণ সহ ধ্রুবকগুলি কী কী?

  2. সি ল্যাঙ্গুয়েজে প্রোগ্রাম ডেভেলপমেন্ট সাইকেল কি?

  3. সি প্রোগ্রামিং-এ স্ট্যাটিক মেমরি বরাদ্দ বলতে কী বোঝ?

  4. সি প্রোগ্রামে বিভিন্ন ধরনের এক্সপ্রেশন ব্যাখ্যা কর