Maison > développement back-end > C++ > Initialisation d'un tableau en C : `Array[n]` vs `Array[10]` – Quelle est la différence ?

Initialisation d'un tableau en C : `Array[n]` vs `Array[10]` – Quelle est la différence ?

Susan Sarandon
Libérer: 2024-12-16 14:56:11
original
704 Les gens l'ont consulté

Array Initialization in C  : `Array[n]` vs. `Array[10]` – What's the Difference?

Array[n] vs Array[10] : la distinction entre l'initialisation des variables et les littéraux numériques pour les tailles de tableau

En programmation C, les tableaux jouent un rôle crucial dans le stockage et la récupération des données. Cependant, il peut y avoir certains pièges lorsque l'on travaille avec l'initialisation de tableaux, notamment liés à l'utilisation de tableaux de longueur variable.

Considérez l'extrait de code suivant :

int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Copier après la connexion

Ce code vise à initialiser un tableau nommé tenorData avec une taille déterminée par la variable n, qui est définie sur 10. Cependant, cette approche génère une erreur de compilation indiquant que l'objet tenorData de taille variable ne peut pas être initialisé de cette manière.

La principale différence dans ce code réside dans l'utilisation d'une variable, n, pour définir la taille du tableau. En C , les tableaux de longueur variable ne sont pas pris en charge, ce qui signifie que la taille d'un tableau doit être une constante connue au moment de la compilation.

Pour résoudre ce problème et initialiser avec succès le tableau, plusieurs options sont disponibles :

  • Utilisez un littéral numérique : Au lieu d'attribuer la taille à une variable, vous pouvez directement spécifier le nombre d'éléments dans le tableau :
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Copier après la connexion
  • Utiliser une constante : Vous pouvez définir la taille du tableau comme une constante :
const int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Copier après la connexion
  • Utiliser l'allocation dynamique : Allouez dynamiquement de la mémoire pour la baie à l'aide du nouveau opérateur :
int n = 10;
double* tenorData = new double[n];
Copier après la connexion

N'oubliez pas de libérer la mémoire en utilisant delete [] tenorData lorsque vous avez terminé avec le tableau.

  • Utilisez un conteneur standard : Pensez à utiliser un conteneur standard comme std::vector qui peut ajuster dynamiquement sa taille comme nécessaire :
int n = 10;
std::vector<double> tenorData(n);
Copier après la connexion

En suivant ces directives, vous pouvez initialiser efficacement des tableaux en C tout en évitant les pièges associés aux tableaux de longueur variable.

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