#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]); } }
Perché questo mi dà i messaggi di errore: “Excess elemnts in scalar initializer” a “2” nellarray che sto definendo e il messaggio di errore “Il valore sottocritto non è un array, un punto o un vettore” nel mio “[i]” quando provo a stampare il numero intero Ith dellarray?
Grazie.
Commenti
Answer
Devi impostare la dimensione dellarray.
IE:
int example[10];
allora potresti farlo per impostare il primo elemento dellarray a 1:
example[0] = 1;
Non puoi farlo però:
int example[10]; example = {1, 2, 3};
Se hai già definito larray, il compilatore si aspetta che tu definisca quale elemento (IE: [0]) dellarray vuoi definire (o modificare), allora cosa vuoi assegnare a quellelemento ( IE: 1).
se desideri che la dimensione venga impostata automaticamente, puoi eliminare questo:
int example[];
e scrivere questo:
int example[] = {1, 2, 3};
allora il compilatore sa che stai definendo larray e impostando i valori dei valori dei 3 elementi su 1, 2 e 3.
Il tuo codice dovrebbe assomigliare a questo:
#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]); } }
Spero che questo aiuti! 🙂
Risposta
Facendo
int example[];
stai inizializzando un puntatore a un array la cui dimensione non è definita. Dopodiché in
int example = {1,2,3};
stai aggiungendo valori al puntatore che è illogico e non ha significato, puoi semplicemente farlo come
int example[3]; int example = {1,2,3};
Spero che questo aiuti!
example
? quanti elementi stai cercando di inserire inexample
?