Я пытаюсь создать программу, которая будет считывать некоторые данные в 2-мерный массив. Чтобы проверить функциональность, я сделал эту небольшую примерную программу. В настоящее время переменная объявлена как фиксированный 2-мерный массив и содержит некоторые логические данные.Извлечение одномерного массива из 2-мерного массива
boolean runData[4][20] = {
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};
Теперь у меня есть функция, к которой я должен передать эти данные, функция принимает 1 мерную булеву массив в качестве аргумента:
void fireLEDs(boolean states[20]){
...
}
Таким образом, это означает, что я должен сегментировать эти данные в 4 одномерных массива и передать каждый из них функции fireLEDs.
код Я пытаюсь прямо сейчас, чтобы сделать это:
for(int b=0;b<4;b++){
fireLEDs(runData[b][]);
delayMicroseconds(divDelay);
}
Однако, это не работает.
Я не очень хорошо знаком с C, поэтому такая функция может вообще не существовать, но некоторые google-fu говорят, что это должно работать.
В качестве примечания: Я использую компилятор arduino, но этот вопрос имеет мало общего с тем, что я думаю.
'Однако это не сработает.' Не очень хорошая постановка задачи. –
Добро пожаловать в переполнение стека! Сначала прочитайте страницу [Ask]. –
«не работает» означает ошибку компилятора или неправильный вывод? 'runData [b]' будет работать до тех пор, пока функция 'void fireLEDs (булевых состояний [20])' будет читать только 20 элементов. Поскольку создание 2D-массива хранит все в памяти в пространстве, то есть, если функция, читающая более 20, читать элементы в следующем массиве в 2D-массиве – Charana