Erreur ISO C ++ interdit le tableau de longueur variable

Erreur ISO C ++ interdit le tableau de longueur variable
Les tableaux de taille variable (VLAS) ne sont pas interdits en C ++; L'erreur ISO est correcte. Les tableaux de taille excessive ou de taille variable sont les autres noms pour les tableaux de longueur variable. La taille de ces tableaux est définie au moment de l'exécution. Parmi les types qui peuvent être mis à jour figurent des tableaux et des pointeurs de longueur variable vers des tableaux de longueur variable. Les types modifiés variables doivent être définis au niveau du prototype de bloc ou de fonction. Les tableaux de longueur variable sont une fonctionnalité qui nous permet d'allouer un tableau automatique de taille variable sur la pile. Dans une instruction Typedef, il peut être utilisé. À partir de la norme C ++, C permet des tableaux de taille variable. Le programme ci-dessous, par exemple, compile et fonctionne parfaitement en C. void PrintArray (int n)

int array [n];
//…

int main()

PrintArray (8);

Cependant, les tableaux de taille variable ne sont pas pris en charge par la norme C ++ (jusqu'à C ++ 11). La taille du tableau est une expression constante dans la norme C ++ 11. En conséquence, le programme ci-dessus peut ne pas être un programme C ++ acceptable. Comme le compilateur GCC a une extension pour les accueillir, le programme peut fonctionner avec le compilateur GCC. En plus.

Il n'est pas souhaitable de générer un tableau potentiellement grand sur une pile avec un espace limité. Si vous n'êtes pas au courant à l'avance, nous écrire un code dommageable. Les tableaux de longueur variable ne sont pas pris en charge nativement en C ++ car ils nécessiteraient des changements de système de type significatifs.

Ici, dans l'article C ++, nous montrerons comment surmonter l'erreur de tableau de longueur variable ISO C ++ interdite au moment de la compilation.

Exemple 1: Programme pour implémenter un tableau de longueur variable en C ++ avec le compilateur GCC

Les tableaux de longueur variable peuvent choisir n'importe quelle taille que l'utilisateur désire, i.e., Ils peuvent être de taille variable. Ce qui suit est un programme C ++ pour créer des tableaux de longueur variable:

Nous avons des fichiers d'en-tête C ++ dans la première étape et le fichier d'espace de noms. Après cela, nous avons la méthode principale du programme, et le corps principal a la déclaration variable du pointeur en tant que «tableau» et l'autre variable «Arr_Size». Le cout imprime la déclaration qui demande à l'utilisateur un nombre pour la taille du tableau. Ensuite, CIN prendra la valeur du nombre de l'utilisateur. Le «tableau» variable est appelé où nous avons réglé la taille du tableau.

Maintenant, nous avons également demandé les valeurs du tableau de l'utilisateur. La valeur du tableau itérera par la boucle pour la taille du tableau. Ensuite, la seconde pour Loop est utilisée pour imprimer les valeurs à l'intérieur du tableau, et en même temps, nous avons supprimé le tableau en utilisant l'expression de supprimer [] dans le programme.

#inclure
#inclure
Utilisation de Namespace Std;
int main()
int * array, arr_size;
couter<<"Enter array size: "Arr_size;
Array = new int [arr_size];
couter<<"Enter array values: "<for (int i = 0; i> array [i];
couter<<"Array: ";
pour (int i = 0; icouter<couter<retour 0;

Le shell affiche un message pour saisir la taille du tableau après compilation. Lorsque l'utilisateur saisit alors la taille du tableau, le shell demande à l'utilisateur de définir les valeurs du tableau. La taille du tableau et ses éléments sont accessibles comme suit. Par conséquent, nous pouvons implémenter un tableau de longueur variable en C ++ sans exception interdite.

Exemple 2: Programme pour implémenter un tableau de longueur variable en C ++ en utilisant des vecteurs

Le C ++ STL fournit un vecteur comme alternative aux tableaux de longueur variable. Il convient à une variété d'applications. Il sera plus clair avec le programme C ++, que nous avons mis en œuvre ci-dessous.

Comme nous devons utiliser des vecteurs dans notre programme. La partie la plus importante est donc de définir le vecteur comme un fichier d'en-tête en haut de l'implémentation du code. Nous avons ajouté le fichier vectoriel dans la section de l'en-tête.

Dans le cadre du programme, nous avons une classe vectorielle avec Type INT, et la classe Vectors a une variable «V."Nous avons ajouté cinq éléments de type entier dans le vecteur. Après cela, nous avons un cycle d'itération pour la boucle. À l'intérieur de la boucle FOR, nous avons déclaré un itérateur à un vecteur avec une nouvelle variable «."Ensuite, la variable« it »a une fonction de début et de fin pour afficher les éléments des vecteurs.

#inclure
#inclure
Utilisation de Namespace Std;
int main()
Vector V;
V.push_back (10);
V.push_back (20);
V.push_back (30);
V.push_back (40);
V.push_back (50);
pour (vector :: iterator it = v.commencer(); il != V.fin(); it ++)
couter<< *it <
retour 0;

Le programme ci-dessus donne la sortie comme celle-ci.

Exemple 3: Programme pour implémenter un tableau de longueur variable en C ++ en utilisant STD :: Vector

Les vecteurs sont utilisés pour transporter des types de données comparables en C++. La taille d'un vecteur, contrairement aux tableaux, peut croître dynamiquement. Nous pouvons ajuster la taille du vecteur au besoin tout au long de l'exécution du programme. Le fichier d'en-tête vectoriel doit être inclus dans notre programme pour utiliser les vecteurs. Une fois la bibliothèque vectorielle incluse dans le fichier d'en-tête, nous pouvons utiliser Vector comme Vector STD :: dans le programme.

Après avoir inclus la bibliothèque vectorielle en haut, nous avons appelé le vecteur std :: à l'intérieur de la fonction principale du programme. Le vecteur est déclaré «nombres» et initialisé avec les cinq valeurs numériques aléatoires. Le «numéro» variable est à nouveau défini, qui a trois éléments vectoriels du conteneur vectoriel-donné ci-dessus. Le std :: cout est utilisé pour afficher la longueur du vecteur à l'intérieur de la variable «numéro» en utilisant la fonction de taille.

#inclure
#inclure
int main()

std :: nombres de vecteur = 10, 20, 30, 40, 50;
nombres = 30, 40, 50;
std :: cout<< "Array Length : " <retour 0;

La sortie montre la longueur du tableau vectoriel spécifié comme suit.

Conclusion

Résumer! Ici, nous avons une discussion détaillée sur les tableaux de longueur variable dans l'introduction. Ainsi, nous avons appris que C ++ interdit les tableaux de longueur variable (VLA). Nous avons spécifié certaines façons ci-dessus pour implémenter le tableau de longueur variable en C ++ et des manières alternatives du tableau de longueur variable. Ceux-ci peuvent être utiles lorsqu'ils interagissent avec les tableaux de longueur variable en C++.