Как инициализировать массив чем-то в C без цикла?

Допустим, у меня есть массив вроде

int arr[10][10]; 

Теперь я хочу инициализировать все элементы этого массива до 0. Как это сделать без циклов или указания каждого элемента?

Обратите внимание, что этот вопрос, если для C

Быстрое n-грязное решение:

 int arr[10][10] = { 0 }; 

Если вы инициализируете любой элемент массива, C по умолчанию инициализирует любой элемент, который вы явно не указываете. Таким образом, приведенный выше код инициализирует первый элемент равным нулю, а C устанавливает все остальные элементы в ноль.

Помимо синтаксиса инициализации, вы всегда можете memset(arr, 0, sizeof(int)*10*10)

 int arr[10][10] = {0}; // only in the case of 0 

Вам повезло: с 0, это возможно.

 memset(arr, 0, 10 * 10 * sizeof(int)); 

Вы не можете сделать это с другим значением, кроме 0, потому что memset работает с байтами, а не с int s. Но int что все 0 байтов всегда будут иметь значение 0 .

 int myArray[2][2] = {}; 

Вам не нужно даже писать нуль явно.

int arr [10] [10] = {0};