length - dynamic array arduino
Inicializando matriz de longitud variable (3)
1.Usted puede simplemente inicializar la matriz de la siguiente manera:
int n;
printf("Enter size of magic square: ");
scanf("%d",&n);
int board[n][n];
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
{
board[i][j] = 0;
}
}
2. memset () solo debe usarse cuando desee establecer la matriz en "0".
Esta pregunta ya tiene una respuesta aquí:
Al inicializar un compilador de matriz de longitud variable aparece un mensaje de error:
[Error] variable-sized object may not be initialized
Fragmento de código:
int n;
printf("Enter size of magic square: ");
scanf("%d",&n);
int board[n][n] = {0};
¿Cómo se deben inicializar las matrices de longitud variable ? Y por qué todos los elementos no se inicializan a 0
de la manera que se indica a continuación;
int board[n][n];
board[n][n] = {0};
?
Los VLA no se pueden inicializar mediante ninguna forma de sintaxis de inicialización. Debe asignar los valores iniciales a los elementos de su matriz después de la declaración de la forma que prefiera.
C11: 6.7.9 Inicialización (p2 y p3):
Ningún inicializador intentará proporcionar un valor para un objeto que no esté contenido dentro de la entidad que se está inicializando.
El tipo de entidad a inicializar será una matriz de tamaño desconocido o un tipo de objeto completo que no sea una matriz de longitud variable .
Tendrás que usar memset
:
memset(board, 0, sizeof board);