ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
806883
Vit (05.01.2018 21:34 - 22:16, просмотров: 8272)
Разучился пользоваться гуглом. Вопрос по Си. Инициализация массива нулями. Непонятки Если взять просто uint8_t arrx[61] = {0}; uint8_t arry[61] = {}; то всё нормально. Теперь рисую тайпдеф для структуры typedef struct x{ uint8_t len; uint8_t arrx[61]; }x; И пытаюсь объявить с присвоением значений через именованные поля x xx = { .len = 0, .arrx[61] = {0}, }; получаю error: array index in initializer exceeds array bounds, заменяю на .arrx[60] = {0}, получаю warning: braces around scalar initializer заменяю на .arrx[] = {0},//тут до редактирования было .arrx[60] = {0}, получаю выхлоп для одной строки error: expected expression before ']' token, error: array index in initializer not of integer type note: (near initialization for 'x.arrx') warning: braces around scalar initializer note: (near initialization for 'x.arrx[0]') Я-то обойдусь без принудительного зануления при инициализации, но интересно, неужели невозможно? EmBitz - GCC, Based on GNU 5.4-branch