#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]); } }
¿Por qué esto me da los mensajes de error: «Exceso de elementos en el inicializador escalar» en «2» en la matriz que «estoy definiendo, y el mensaje de error» El valor subindicado no es una matriz, punto o vector «en mi» [i] «al intentar imprimir el I-ésimo entero en la matriz?
Gracias.
Comentarios
Responder
Tienes que establecer el tamaño de la matriz.
IE:
int example[10];
entonces puedes hacer esto para configurar el primer elemento de la matriz a 1:
example[0] = 1;
Sin embargo, «no puede hacer esto:
int example[10]; example = {1, 2, 3};
Si ya ha definido la matriz, el compilador espera que defina qué elemento (IE: [0]) de la matriz desea definir (o cambiar), entonces qué desea asignar a ese elemento ( IE: 1).
si desea que el tamaño se establezca automáticamente, puede eliminar esto:
int example[];
y escribir esto:
int example[] = {1, 2, 3};
entonces el compilador sabe que usted está definiendo la matriz y estableciendo los valores de los valores de los 3 elementos en 1, 2 y 3.
Su código debería verse así:
#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]); } }
¡Espero que esto ayude! 🙂
Responder
Haciendo
int example[];
está inicializando un puntero a una matriz cuyo tamaño no está definido. Después de eso en
int example = {1,2,3};
yu estás agregando valores al puntero, lo cual es ilógico y no tiene sentido, puedes hacerlo como
int example[3]; int example = {1,2,3};
¡Espero que esto ayude!
example
como de? ¿Cuántos elementos estás intentando insertar enexample
?