#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]); } }
Hvorfor giver dette mig fejlmeddelelserne: “Overskydende elemnter i skalar initialisering” ved “2” i det array, jeg definerer, og fejlmeddelelsen “Subcripted value is not an array, point or vector” at my “[i]” når man prøver at udskrive Ith-heltal i arrayet?
Tak.
Kommentarer
Svar
Du skal indstille arrayets størrelse.
IE:
int example[10];
så kan du gøre dette for at indstille det første element i arrayet til 1:
example[0] = 1;
Du kan dog ikke gøre dette:
int example[10]; example = {1, 2, 3};
Hvis du allerede har defineret arrayet, forventer compileren, at du definerer hvilket element (IE: [0]) i arrayet, du vil definere (eller ændre), så hvad du vil tildele det element ( IE: 1).
Hvis du ønsker, at størrelsen skal indstilles automatisk, kan du slette dette:
int example[];
og skrive dette:
int example[] = {1, 2, 3};
så ved compileren, at du definerer arrayet og sætter værdierne for værdierne for de 3 elementer til 1, 2 og 3.
Din kode skal se sådan ud:
#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]); } }
Håber det hjælper! 🙂
Svar
Ved at gøre
int example[];
du initialiserer en markør til et array, hvis størrelse ikke er defineret. Derefter tilføjer du
int example = {1,2,3};
værdier til markøren, som er ulogisk og ikke har nogen betydning, du kan bare gøre det som
int example[3]; int example = {1,2,3};
Håber dette hjælper!
example
til at være af? hvor mange elementer prøver du at skubbe ind iexample
?