Инициализация массива, возникает ошибка
- Войдите на сайт для отправки комментариев
Чт, 20/01/2022 - 22:33
Надо инициализировать массив framesArray
const byte frame0[][3] = { {7, 0, 0}, {0, 0, 0}, {0, 0, 0}, {255, 255, 255}, {0, 0, 255}, {255, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {255, 0, 255}, }; const byte frame1[][3] = { {7, 0, 0}, {0, 0, 0}, {0, 0, 0}, {255, 255, 255}, {0, 0, 255}, {255, 0, 33}, {0, 0, 0}, {0, 58, 0}, {0, 0, 0}, {255, 0, 255}, }; const byte framesArray[2][10][3] = {frame0, frame1};
Компилятор говорит:
picture:27:51: error: array must be initialized with a brace-enclosed initializer
const byte framesArray[2][10][3] = {frame0, frame1};
^
picture:27:51: error: array must be initialized with a brace-enclosed initializer
exit status 1
array must be initialized with a brace-enclosed initializer
подскажите чё к чему
У вас двухмерный массив, а опрашиваете вы трёхмерный. Вот компилятор и матерится.
Извините, не могли бы вы это кодом написать, я плохо шарю)))
У вас двухмерный массив, а опрашиваете вы трёхмерный. Вот компилятор и матерится.
Не могли бы вы это кодом написать
- зюйд, зюйд ост
- что ты там зюзюкаешь! Пальцем покажи.
Уже было.
framesArray НЕ прописан как трёхмерный массив. Что хотите получить на выходе?
Если сильно хочется, то обрами ещё одними фигурными скобками, как компилятор говорит ))
frame0 - 10 на 3
frame1 - 10 на 3
framesArray - 10 на 3 на 2
Вот и весь ответ.
Если сильно хочется, то обрами ещё одними фигурными скобками, как компилятор говорит ))
Решил эту хрень трёхмерным массивом, но всё-же спасибо
Мужики, Вас куда-то не туда понесло. Вы предлагаете ТС как сделать по-другому, а не как исправить то, что есть.
Жак Фреско,
Вы тут человек новый, потому я пока без мата (а мат так и просится, потому, что Вы не первый и не десятый, и не сотый, кому приходится это говорить). Постарайтесь запомнить то, что я скажу.
Всегда выкладывайте ПОЛНЫЙ код, который можно скомпилировать, запустить и увидеть Вашу проблему. Если я дописываю код за Вас, то вполне возможно, я спрячу Вашу проблему, да и в лом дописывать. Всегда ПОЛНЫЙ код!
Всегда внятно пишите, что Вы хотите сделать. Не думайте, что кто-то знает, что у Вас в голове! Например, в данном случае, чего Вы хотите? Чтобы третий массив просто ссылался на первые два, или чтобы данные продублировались? Я предположил первое, но если ошибся - то, всё, что я для Вас делал - псу под хвост, а я время терял. Всегда пишите, чего Вы хотите добиться!
Не будете это выполнять - вероятность помощи сильно уменьшится, а вероятность срача - увеличится.
Теперь по Вашей проблеме, если Вам нужно объявить массив двумерных массивов, то это делается не так. Вместно строки №27 нужно писать
Вот Вам полный пример с печатью всех элементов массива для контроля. Запустите. Как видите, всё печатается нормально.
Если не понимаете первую строку - не берите в голову, она здесь только для компактной записи печати, а то я задолбался бы писать "Serial.print" (про это есть отдельная тема на форуме)
вот и тест получился - "можно писать коротко, как привыкли все программисты на С:"
1
SerialPrintf("Voltage=%dV; Current=%dma\n, u,a);
НЕ!!! Ни разу не программист оказывается )))
Мужики, Вас куда-то не туда понесло. Вы предлагаете ТС как сделать по-другому, а не как исправить то, что есть.
Жак Фреско,
Вы тут человек новый, потому я пока без мата (а мат так и просится, потому, что Вы не первый и не десятый, и не сотый, кому приходится это говорить). Постарайтесь запомнить то, что я скажу.
Всегда выкладывайте ПОЛНЫЙ код, который можно скомпилировать, запустить и увидеть Вашу проблему. Если я дописываю код за Вас, то вполне возможно, я спрячу Вашу проблему, да и в лом дописывать. Всегда ПОЛНЫЙ код!
Всегда внятно пишите, что Вы хотите сделать. Не думайте, что кто-то знает, что у Вас в голове! Например, в данном случае, чего Вы хотите? Чтобы третий массив просто ссылался на первые два, или чтобы данные продублировались? Я предположил первое, но если ошибся - то, всё, что я для Вас делал - псу под хвост, а я время терял. Всегда пишите, чего Вы хотите добиться!
Не будете это выполнять - вероятность помощи сильно уменьшится, а вероятность срача - увеличится.
Теперь по Вашей проблеме, если Вам нужно объявить массив двумерных массивов, то это делается не так. Вместно строки №27 нужно писать
Вот Вам полный пример с печатью всех элементов массива для контроля. Запустите. Как видите, всё печатается нормально.
Если не понимаете первую строку - не берите в голову, она здесь только для компактной записи печати, а то я задолбался бы писать "Serial.print" (про это есть отдельная тема на форуме)
Мужики, Вас куда-то не туда понесло. Вы предлагаете ТС как сделать по-другому, а не как исправить то, что есть.
Жак Фреско,
Вы тут человек новый, потому я пока без мата (а мат так и просится, потому, что Вы не первый и не десятый, и не сотый, кому приходится это говорить). Постарайтесь запомнить то, что я скажу.
Всегда выкладывайте ПОЛНЫЙ код, который можно скомпилировать, запустить и увидеть Вашу проблему. Если я дописываю код за Вас, то вполне возможно, я спрячу Вашу проблему, да и в лом дописывать. Всегда ПОЛНЫЙ код!
Всегда внятно пишите, что Вы хотите сделать. Не думайте, что кто-то знает, что у Вас в голове! Например, в данном случае, чего Вы хотите? Чтобы третий массив просто ссылался на первые два, или чтобы данные продублировались? Я предположил первое, но если ошибся - то, всё, что я для Вас делал - псу под хвост, а я время терял. Всегда пишите, чего Вы хотите добиться!
Не будете это выполнять - вероятность помощи сильно уменьшится, а вероятность срача - увеличится.
Теперь по Вашей проблеме, если Вам нужно объявить массив двумерных массивов, то это делается не так. Вместно строки №27 нужно писать
Вот Вам полный пример с печатью всех элементов массива для контроля. Запустите. Как видите, всё печатается нормально.
Если не понимаете первую строку - не берите в голову, она здесь только для компактной записи печати, а то я задолбался бы писать "Serial.print" (про это есть отдельная тема на форуме)
Евгений, я так понял вы тут местная легенда! Ладно, не сердитесь но ваш скетч выводит какую-то ерунду
Ну, теперь ты будешь месной феерической лечендой. Сравни скорости порта в скетче и у монитора
вот что значит, кто рано встаёт )))