El estándar C99 permite arreglos de tamaño variable (ver esto ). Pero, a diferencia de las arrays normales, las arrays de tamaño variable no se pueden inicializar.
Por ejemplo, el siguiente programa compila y funciona correctamente en un compilador compatible con C99.
#include<stdio.h> int main() { int M = 2; int arr[M][M]; int i, j; for (i = 0; i < M; i++) { for (j = 0; j < M; j++) { arr[i][j] = 0; printf ("%d ", arr[i][j]); } printf("\n"); } return 0; }
Producción:
0 0 0 0
Pero lo siguiente falla con un error de compilación.
#include<stdio.h> int main() { int M = 2; int arr[M][M] = {0}; // Trying to initialize all values as 0 int i, j; for (i = 0; i < M; i++) { for (j = 0; j < M; j++) printf ("%d ", arr[i][j]); printf("\n"); } return 0; }
Producción:
Compiler Error: variable-sized object may not be initialized
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA