#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

  • Hay un error en la inicialización: int example = [1,2,3]; y no {} 🙂
  • @AhmedEl nope ..
  • @JakobH, en C, una matriz tiene un tamaño fijo; una vez que se determina el tamaño de una matriz, no se puede cambiar. Ahora cuál es el tamaño que definiste example como de? ¿Cuántos elementos estás intentando insertar en example?
  • Lo siento, no ' t ver la línea antes de principal …

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!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *