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 :
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
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.
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!