Digamos que tengo una matriz como
int arr[10][10];
Ahora quiero inicializar todos los elementos de esta matriz a 0. ¿Cómo puedo hacer esto sin bucles o especificando cada elemento?
Tenga en cuenta que esta pregunta si para C
La solución rápida-sucia:
int arr[10][10] = { 0 };
Si inicializa cualquier elemento de la matriz, C inicializará por defecto cualquier elemento que no especifique explícitamente. Así que el código anterior inicializa el primer elemento a cero, y C establece todos los demás elementos en cero.
Además de la syntax de inicialización, siempre puede memset(arr, 0, sizeof(int)*10*10)
int arr[10][10] = {0}; // only in the case of 0
Tienes suerte: con 0, es posible.
memset(arr, 0, 10 * 10 * sizeof(int));
No puede hacer esto con otro valor que 0, porque memset
funciona en bytes, no en int
s. Pero un int
que es todo 0
bytes siempre tendrá el valor 0
.
int myArray[2][2] = {};
Ni siquiera necesitas escribir el cero explícitamente.
int arr [10] [10] = {0};