#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

  • Er zit een fout in de initialisatie: int example = [1,2,3]; en niet {} 🙂
  • @AhmedEl nee ..
  • @JakobH, in C heeft een array een vaste grootte – als de grootte van een array eenmaal is bepaald, kan deze niet worden gewijzigd. wat is nu de grootte dat je example hebt gedefinieerd als? hoeveel elementen probeer je in te drukken example?
  • Sorry, niet ' t zie de regel voor main …

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!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *