#include <cs50.h> #include <stdio.h> int example[]; int main(void) { int example = {1,2,3}; for (int i = 0; i < 3; i++) { printf("%i \n", example[i]); } }
Pourquoi cela me donne-t-il les messages derreur: « Excès déliminations dans linitialiseur scalaire » à « 2 » dans le tableau que je « m définis, et le message derreur » La valeur soumise nest pas un tableau, un point ou un vecteur « à mon » [i] « lorsque vous essayez dimprimer le Ième entier dans le tableau?
Merci.
Commentaires
Answer
Vous devez définir la taille du tableau.
IE:
int example[10];
alors vous pouvez le faire pour définir le premier élément du tableau à 1:
example[0] = 1;
Vous ne pouvez pas faire ceci cependant:
int example[10]; example = {1, 2, 3};
Si vous « avez déjà défini le tableau, le compilateur sattend à ce que vous définissiez quel élément (IE: [0]) du tableau que vous voulez définir (ou modifier), alors ce que vous voulez attribuer à cet élément ( IE: 1).
si vous voulez que la taille soit définie automatiquement, vous pouvez supprimer ceci:
int example[];
et écrire ceci:
int example[] = {1, 2, 3};
alors le compilateur sait que vous définissez le tableau et définissez les valeurs des valeurs des 3 éléments sur 1, 2 et 3.
Votre code devrait ressembler à ceci:
#include <cs50.h> #include <stdio.h> int main(void) { int example[] = {1,2,3}; for (int i = 0; i < sizeof(example) / 4; i++) { printf("%d\n", example[i]); } }
Jespère que cela vous aidera! 🙂
Réponse
En faisant
int example[];
vous initialisez un pointeur vers un tableau dont la taille nest pas définie. Ensuite, dans
int example = {1,2,3};
vous ajoutez des valeurs au pointeur, ce qui est illogique et na aucune signification, vous pouvez simplement le faire comme
int example[3]; int example = {1,2,3};
Jespère que cela vous aidera!
example
? de combien déléments essayez-vous dinsérerexample
?