La confusion dans la taille du tableau provoque une erreur
Lors de la déclaration d'un tableau flottant avec une taille dynamique, telle que :
<code class="cpp">int size = 100; float x[size][2];</code>
vous pouvez rencontrer une erreur « expression constante attendue ». Cela se produit car C exige que les tableaux aient des tailles fixes au moment de la compilation, non déterminées au moment de l'exécution. La variable de taille ici ne peut pas être utilisée comme dimension de tableau valide.
Solution avec vecteur
Pour éviter ce problème, pensez à utiliser un vecteur :
<code class="cpp">std::vector<std::array<float, 2>> x(size);</code>
Cela crée un vecteur de tableaux, chaque tableau contenant deux flottants.
Solutions alternatives
Vous pouvez également utiliser l'allocation de mémoire brute avec new ou créer la vôtre type de tableau :
<code class="cpp">// With new float (*px)[2] = new float[size][2]; // With custom array type template<typename T, size_t N> struct array { T data[N]; }; array<float, 2> myArray[size];</code>
Options supplémentaires
D'autres options incluent l'utilisation d'un vecteur de paires ou le lancement de votre propre type de tableau avec des assistants de syntaxe :
<code class="cpp">// Vector of pairs std::vector<std::pair<float, float>> x(size); // Custom array type template<typename T> struct identity { typedef T type; }; using FloatArray2 = identity<float[2]>::type; FloatArray2 myArray[size];</code>
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!