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
Susan Sarandonoriginal
2024-12-16 14:56:11754parcourir

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};

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};
  • 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};
  • 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];

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);

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!

Déclaration:
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