Maison > développement back-end > C++ > Pourquoi ne puis-je pas utiliser une variable pour initialiser la taille d'un tableau en C ?

Pourquoi ne puis-je pas utiliser une variable pour initialiser la taille d'un tableau en C ?

Mary-Kate Olsen
Libérer: 2024-10-28 17:30:30
original
646 Les gens l'ont consulté

Why Can't I Use a Variable to Initialize an Array Size in C  ?

Tailles de tableau initialisées par variable : un paradoxe des expressions constantes C

En C, utiliser un const int pour déclarer la taille d'un tableau peut être à la fois permis et interdit. Considérez les exemples suivants :

<code class="cpp">const int size = 2;
int array[size] = {0}; // Valid</code>
Copier après la connexion
<code class="cpp">int a = 2;
const int size = a;
int array[size] = {0}; // Compile error</code>
Copier après la connexion

La différence cruciale réside dans l'initialisation de la taille. Le premier exemple utilise une expression constante (2) pour définir la taille au moment de la compilation. Cela permet au compilateur de réserver de la mémoire pour le tableau lors de la compilation.

En revanche, le deuxième exemple utilise une variable (a) pour initialiser la taille. Il ne s'agit pas d'une expression constante, le compilateur ne peut donc pas déterminer la taille du tableau avant l'exécution. Par conséquent, l'allocation de mémoire ne peut pas être effectuée au moment de la compilation, entraînant une erreur de compilation.

Cette restriction n'est pas purement technique. Le comité C a intentionnellement interdit les tailles de tableaux initialisées par des variables pour garantir la stabilité et l'efficacité du code. Cela élimine la possibilité de modifier dynamiquement la taille du tableau, ce qui pourrait entraîner un comportement indéfini et une corruption de la mémoire.

En limitant la taille des tableaux à des expressions constantes, les développeurs C sont obligés de déterminer la taille de leurs tableaux lors de la compilation. Cela élimine l’incertitude et améliore la fiabilité du code. Bien que cette restriction puisse sembler trop stricte, elle contribue en fin de compte à la sécurité et à la prévisibilité des programmes C.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal