Maison > développement back-end > C++ > le corps du texte

Comment corriger l'erreur « Expression constante attendue » lors de la déclaration de tableaux en C ?

Linda Hamilton
Libérer: 2024-10-25 13:04:03
original
543 Les gens l'ont consulté

How to Fix the

Résolution de l'erreur « Expression constante attendue » pour la taille du tableau

Considérez le code C suivant :

<code class="cpp">int count = 0;
float sum = 0;
float maximum = -1000000;

std::ifstream points;

int size = 100;
float x[size][2]; // <<< Error
Copier après la connexion

Ceci le code génère une erreur « expression constante attendue » lors de la déclaration du tableau x. Cette erreur se produit car C nécessite que les tailles de tableaux non statiques soient connues au moment de la compilation.

Solution utilisant des vecteurs

Pour résoudre ce problème, nous pouvons utiliser un vecteur C au lieu d'un tableau :

<code class="cpp">std::vector<std::array<float, 2>> x(size);</code>
Copier après la connexion

Solution utilisant new

Une autre approche consiste à allouer dynamiquement le tableau à l'aide de l'opérateur new :

<code class="cpp">float (*px)[2] = new float[size][2];</code>
Copier après la connexion

Solutions alternatives

  • Utiliser Boost : si vous avez accès à la bibliothèque Boost, vous pouvez utiliser boost::array au lieu de std::array.
  • Définir Type de tableau personnalisé : définissez un type de tableau personnalisé qui prend en charge le dimensionnement dynamique et utilisez-le dans un vecteur.

Considérations pour les compilateurs non C 11

Si vous Si vous n'avez pas de support C 11, utilisez les techniques suivantes :

  • Utilisez un modèle d'identité pour simplifier la syntaxe lors de l'utilisation de new.
  • Utilisez un vecteur de std::pair comme alternative à la solution vectorielle mentionnée précédemment.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!