#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]); } }
Waarom krijg ik de volgende foutmeldingen: “Excess elemnts in scalar initializer” at “2” in de array die ik “m definieer, en de foutmelding” Ingeschreven waarde is geen array, punt of vector “op mijn” [i] “wanneer ik probeer het I-de gehele getal in de array af te drukken?
Bedankt.
Reacties
Answer
Je moet de grootte van de array instellen.
IE:
int example[10];
dan zou je dit kunnen doen om het eerste element van de array naar 1:
example[0] = 1;
Je kunt dit echter “niet doen:
int example[10]; example = {1, 2, 3};
Als je de array al hebt gedefinieerd, verwacht de compiler dat je definieert welk element (IE: [0]) van de array je wilt definiëren (of wijzigen), en wat je aan dat element wilt toewijzen ( IE: 1).
als u wilt dat de grootte automatisch wordt ingesteld, kunt u dit verwijderen:
int example[];
en dit schrijven:
int example[] = {1, 2, 3};
dan weet de compiler dat u de array definieert en de waarden van de waarden van de 3 elementen instelt op 1, 2 en 3.
Uw code zou er ongeveer zo uit moeten zien:
#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]); } }
Ik hoop dat dit helpt! 🙂
Antwoord
Door te doen
int example[];
u initialiseert een pointer naar een array waarvan de grootte niet is gedefinieerd. Daarna in
int example = {1,2,3};
voegt u waarden toe aan de aanwijzer, wat onlogisch is en geen betekenis heeft, u kunt het gewoon doen zoals
int example[3]; int example = {1,2,3};
Ik hoop dat dit helpt!
example
hebt gedefinieerd als? hoeveel elementen probeer je in te drukkenexample
?