Inicialización de arrays de tamaño de variables en C

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

Deja una respuesta

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