Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

คุณหมายถึงอะไรโดยการจัดสรรหน่วยความจำแบบคงที่ในการเขียนโปรแกรม C?


หน่วยความจำสามารถจัดสรรได้สองวิธีดังต่อไปนี้ -

คุณหมายถึงอะไรโดยการจัดสรรหน่วยความจำแบบคงที่ในการเขียนโปรแกรม C?

การจัดสรรหน่วยความจำแบบคงที่

ตัวแปรคงที่กำหนดในหนึ่งบล็อกของพื้นที่จัดสรร ที่มีขนาดคงที่ เมื่อได้รับการจัดสรรแล้วจะไม่มีวันปล่อยให้เป็นอิสระ

มีการจัดสรรหน่วยความจำสำหรับตัวแปรที่ประกาศไว้ในโปรแกรม

  • สามารถรับที่อยู่ได้โดยใช้ตัวดำเนินการ '&' และสามารถกำหนดให้กับตัวชี้ได้

  • หน่วยความจำจะถูกจัดสรรระหว่างเวลาคอมไพล์

  • มันใช้สแต็กเพื่อรักษาการจัดสรรหน่วยความจำแบบคงที่

  • ในการจัดสรรนี้ เมื่อจัดสรรหน่วยความจำแล้ว ขนาดหน่วยความจำจะไม่สามารถเปลี่ยนแปลงได้

  • มีประสิทธิภาพน้อยกว่า

ขนาดสุดท้ายของตัวแปรจะถูกกำหนดก่อนที่จะรันโปรแกรม ซึ่งจะถูกเรียกว่าเป็นการจัดสรรหน่วยความจำแบบคงที่ เรียกอีกอย่างว่าการจัดสรรหน่วยความจำเวลาคอมไพล์

เราไม่สามารถเปลี่ยนขนาดของตัวแปรที่ถูกจัดสรรในเวลาคอมไพล์ได้

ตัวอย่างที่ 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