মেমরি নিম্নলিখিত দুটি উপায়ে বরাদ্দ করা যেতে পারে -
স্ট্যাটিক মেমরি বরাদ্দ
স্থির পরিবর্তনশীল একটি নির্দিষ্ট আকারের বরাদ্দকৃত স্থানের একটি ব্লকে সংজ্ঞায়িত করে। একবার এটি বরাদ্দ হয়ে গেলে, এটি কখনই মুক্ত করা যায় না।
প্রোগ্রামে ঘোষিত ভেরিয়েবলের জন্য মেমরি বরাদ্দ করা হয়।
-
ঠিকানাটি ‘&’ অপারেটর ব্যবহার করে প্রাপ্ত করা যেতে পারে এবং একটি পয়েন্টারে বরাদ্দ করা যেতে পারে।
-
মেমরি কম্পাইল সময় বরাদ্দ করা হয়.
-
এটি মেমরির স্ট্যাটিক বরাদ্দ বজায় রাখার জন্য স্ট্যাক ব্যবহার করে।
-
এই বরাদ্দে, একবার মেমরি বরাদ্দ হয়ে গেলে, মেমরির আকার পরিবর্তন করা যায় না।
-
এটি কম কার্যকর।
প্রোগ্রাম চালানোর আগে একটি ভেরিয়েবলের চূড়ান্ত আকার নির্ধারণ করা হয়, এটিকে স্ট্যাটিক মেমরি বরাদ্দ বলা হবে। একে কম্পাইল-টাইম মেমরি বরাদ্দও বলা হয়।
আমরা একটি ভেরিয়েবলের আকার পরিবর্তন করতে পারি না যা কম্পাইল-টাইমে বরাদ্দ করা হয়।
উদাহরণ 1
স্ট্যাটিক মেমরি বরাদ্দ সাধারণত একটি অ্যারের জন্য ব্যবহৃত হয়। অ্যারে -
-এর একটি উদাহরণ প্রোগ্রাম নেওয়া যাক#include<stdio.h> main (){ int a[5] = {10,20,30,40,50}; int i; printf (“Elements of the array are”); for ( i=0; i<5; i++) printf (“%d, a[i]); }
আউটপুট
Elements of the array are 1020304050
উদাহরণ 2
একটি অ্যারের সমস্ত উপাদানের যোগফল এবং গুণফল গণনা করার জন্য আরেকটি উদাহরণ বিবেচনা করা যাক −
#include<stdio.h> void main(){ //Declaring the array - run time// int array[5]={10,20,30,40,50}; int i,sum=0,product=1; //Reading elements into the array// //For loop// for(i=0;i<5;i++){ //Calculating sum and product, printing output// sum=sum+array[i]; product=product*array[i]; } //Displaying sum and product// printf("Sum of elements in the array is : %d\n",sum); printf("Product of elements in the array is : %d\n",product); }
আউটপুট
Sum of elements in the array is : 150 Product of elements in the array is : 12000000