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

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


সমস্যা

সি-তে ডাইনামিক মেমোরি অ্যালোকেশন ব্যবহার করে একটি অ্যারे থেকে সর্বোচ্চ ও সর্বনিম্ন মান বের করা।

সমাধান

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

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

  • malloc () − রানটাইমে বাইটে মেমোরি ব্লক অ্যালোকেট করে।

  • calloc () − রানটাইমে কমপ্যাক্ট ব্লক মেমোরি অ্যালোকেট করে।

  • realloc () − অ্যালোকেটেড মেমোরি কমানো বা বাড়ানোর জন্য ব্যবহৃত হয়।

  • free () − পূর্বে অ্যালোকেটেড মেমোরি স্পেস ডি-অ্যালোকেট করে।

ডাইনামিক মেমোরি অ্যালোকেশন ব্যবহার করে অ্যারেতে সর্বোচ্চ ও সর্বনিম্ন মান বের করা

অ্যারেতে সর্বোচ্চ এলিমেন্ট বের করার লজিক −

প্রথমে অ্যারেতে মেমোরি অ্যালোকেট করুন

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. সি ভাষায় কনস্ট্যান্ট (Constant) কী এবং উদাহরণ

  2. সি ভাষায় প্রোগ্রাম ডেভেলপমেন্ট সাইকেল (Program Development Cycle)

  3. C প্রোগ্রামিং-এ স্ট্যাটিক মেমরি অ্যালোকেশন কি?

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