Либо нет никакого значения по умолчанию, назначенного элементам массива (и это неопределенное поведение для чтения значений), или 0 (ноль), назначенных, в зависимости от того, как и где определен массив.
глобальные и статические массивы инициализируются в 0 (ноль)
unsigned char aglobal[2][13]; /* all zeroes */
int foo(void) {
static unsigned char astatic[2][13]; /* all zeroes */
unsigned char aauto[2][13]; /* unset, ub to read values */
}
Вы можете инициализировать с вашими предпочтениями, хотя
unsigned char tmp[2][13] = {{1, 2, 3, 4, 5}, {11}};
Приведенная выше инициализация приводит к тому, что все элементы равны 0 (нулю), кроме tmp[0][0]
до tmp[0][4]
и tmp[1][0]
.
Или установите элементы один за другим в середине кода после инициализации:
for (j=0; j<2; j++) {
for (k=0; k<13; j++) {
tmp[j][k] = 0;
}
}