Допустим, у меня есть массив, подобный
int arr[10][10];
Теперь я хочу инициализировать все элементы этого массива равными 0. Как я могу сделать это без циклов или без указания каждого элемента?Обратите внимание, что этот вопрос, если для C
Быстрое решение:
int arr[10][10] = { 0 };
Если вы инициализируете любой элемент массива, C по умолчанию инициализирует любой элемент, который вы не указали явно. Таким образом, приведенный выше код инициализирует первый элемент нулем, а C устанавливает все остальные элементы равными нулю.
Помимо синтаксиса инициализации, вы всегда можете memset(arr, 0, sizeof(int)*10*10)
memset(arr, 0, sizeof(int)*10*10)
Вам повезло: с 0 это возможно.
memset(arr, 0, 10 * 10 * sizeof(int));
Вы не можете сделать это с другим значением, отличным от 0, потому что memset работает с байтами, а не с int с. Но int это все 0 байтов всегда будет иметь значение 0.
memset
int
0
int arr[10][10] = {0}; // only in the case of 0
int myArray[2][2] = {};
Вам даже не нужно явно писать ноль.
int arr [10] [10] = {0};