मेमोरी को निम्नलिखित दो तरीकों से आवंटित किया जा सकता है -
स्थिर मेमोरी आवंटन
स्थिर चर एक निश्चित आकार के आवंटित स्थान के एक ब्लॉक में परिभाषित करता है। एक बार आवंटित होने के बाद, इसे कभी भी मुक्त नहीं किया जा सकता है।
प्रोग्राम में घोषित चर के लिए मेमोरी आवंटित की जाती है।
-
पता '&' ऑपरेटर का उपयोग करके प्राप्त किया जा सकता है और एक सूचक को सौंपा जा सकता है।
-
मेमोरी को संकलन समय के दौरान आवंटित किया जाता है।
-
यह मेमोरी के स्थिर आवंटन को बनाए रखने के लिए स्टैक का उपयोग करता है।
-
इस आवंटन में, एक बार मेमोरी आवंटित हो जाने के बाद, मेमोरी का आकार नहीं बदल सकता है।
-
यह कम कुशल है।
प्रोग्राम को चलाने से पहले एक वेरिएबल का अंतिम आकार तय किया जाता है, इसे स्टैटिक मेमोरी एलोकेशन कहा जाएगा। इसे कंपाइल-टाइम मेमोरी एलोकेशन भी कहा जाता है।
हम एक वेरिएबल के आकार को नहीं बदल सकते जो कंपाइल-टाइम पर आवंटित किया जाता है।
उदाहरण 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