Maison >développement back-end >C++ >\'Pourquoi la déclaration d'un tableau avec une taille déterminée par l'exécution provoque-t-elle une erreur \'Expression constante attendue\' ?\'

\'Pourquoi la déclaration d'un tableau avec une taille déterminée par l'exécution provoque-t-elle une erreur \'Expression constante attendue\' ?\'

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 04:10:29518parcourir

Erreur : « Expression constante attendue » pour la taille du tableau

Lors de la tentative de déclaration d'un tableau avec une taille déterminée par l'exécution, comme dans le extrait de code suivant :

<code class="cpp">int size = 100;
float x[size][2];</code>

vous pouvez rencontrer l'erreur "expression constante attendue". Cette erreur se produit car la taille des tableaux déclarés doit être déterminée au moment de la compilation.

Solution : utilisez une allocation de tableau vectoriel ou dynamique

Pour résoudre ce problème, envisagez d'utiliser un allocation de vecteurs ou de tableaux dynamiques. À l'aide d'un vecteur, vous pouvez spécifier la taille au moment de l'exécution :

<code class="cpp">std::vector< std::array<float, 2> > x(size);</code>

Vous pouvez également utiliser l'opérateur new pour allouer dynamiquement le tableau :

<code class="cpp">float (*px)[2] = new float[size][2];</code>

Autres options :

  • Boost Array : Si vous n'avez pas C 11, utilisez boost::array de la bibliothèque Boost.
  • Type de tableau personnalisé : Créez un type de tableau personnalisé qui peut être placé dans un vecteur.
  • Modèle d'identité : Simplifiez la syntaxe pour l'allocation dynamique de tableau à l'aide d'un modèle d'identité.
  • Vecteur de paires : Utilisez un vecteur de std::pair pour stocker les données.

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