内存可以通过以下两种方式分配
静态内存分配
静态变量在分配空间的一个块中定义,具有固定大小。一旦分配,就永远无法释放。
内存分配给程序中声明的变量。
可以使用“&”运算符获取地址,并且可以分配给指针。
内存在编译时分配。
它使用堆栈来维护内存的静态分配。
在此分配中,一旦分配了内存,内存大小就无法更改。
它的效率较低。
变量的最终大小是在运行程序之前决定的,它将被称为静态内存分配。它也称为编译时内存分配。
我们无法更改在编译时分配的变量的大小。
示例 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
",sum);
printf("Product of elements in the array is : %d
",product);
}
输出
Sum of elements in the array is : 150
Product of elements in the array is : 12000000