Maison  >  Article  >  développement back-end  >  En programmation C, que signifie l’allocation de mémoire statique ?

En programmation C, que signifie l’allocation de mémoire statique ?

王林
王林avant
2023-09-14 15:21:01952parcourir

La mémoire peut être allouée des deux manières suivantes :

En programmation C, que signifie l’allocation de mémoire statique ?

Allocation de mémoire statique

Les variables statiques sont définies dans un bloc d'espace alloué avec une taille fixe. Une fois attribué, il ne peut être libéré.

Allouez de la mémoire pour les variables déclarées dans le programme.

  • Vous pouvez utiliser l'opérateur "&" pour obtenir l'adresse et l'attribuer au pointeur.

  • La mémoire est allouée au moment de la compilation.

  • Il utilise la pile pour maintenir l'allocation statique de la mémoire.

  • Dans ce type d'allocation, une fois la mémoire allouée, la taille de la mémoire ne peut plus être modifiée.

  • Moins efficace.

La taille finale de la variable est déterminée avant l'exécution du programme, c'est ce qu'on appelle l'allocation de mémoire statique. Également connue sous le nom d’allocation de mémoire au moment de la compilation.

Nous ne pouvons pas modifier la taille des variables allouées au moment de la compilation.

Exemple 1

L'allocation de mémoire statique est généralement utilisée pour les tableaux. Faisons un exemple de programme en prenant un tableau comme exemple :

Démonstration

#include<stdio.h>
main (){
   int a[5] = {10,20,30,40,50};
   int i;
   printf (&ldquo;Elements of the array are&rdquo;);
   for ( i=0; i<5; i++)
      printf (&ldquo;%d, a[i]);
}

Sortie

Elements of the array are
1020304050

Exemple 2

Considérons un autre exemple pour calculer la somme et le produit de tous les éléments d'un tableau −

Démonstration en temps réel

#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</p><p>",sum);
   printf("Product of elements in the array is : %d</p><p>",product);
}

Sortie

Sum of elements in the array is : 150
Product of elements in the array is : 12000000

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer