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