Длина массива в многомерном массиве - PullRequest
0 голосов
/ 12 марта 2019

У меня проблемы с использованием многомерных массивов в моем проекте.Я буду получать данные через последовательную связь, которая сохраняется в буфере байтового массива.Этот байтовый массив данных я хочу сохранить в другом массиве.Поэтому я хочу, чтобы массив содержал от 50 до 150 таких байтовых массивов, и они иногда будут иметь разную длину.

После того как я их сохраню, я хочу извлечь их и отправить на другой последовательный порт.Моя проблема в том, что я не знаю, как рассчитать длину различных байтовых массивов, сохраненных в «основном» массиве.

#define buffLength  260
#define arrayLength   4

byte buff[buffLength] = {0xAA, 0x40, 0x00, 0x20, 0x22};
byte buff2[buffLength] = {0xAA, 0x43, 0x02, 0x00, 0x42, 0x25, 0x48};
byte arrayOfBuff[arrayLength][buffLength] = {{0},{0}};

byte savedArrays = 2;

byte buffLen = 5;
bool hasPrinted = false;

void setup() {
  Serial.begin(115200);
  while(!Serial){};

  Serial.println("Writing buffer to array... ");

  for(int i = 0; i < savedArrays; i++){      // saves the byte arrays
      for(int j = 0; j < buffLen; j++){
          arrayOfBuff[0][i] = buff[i];
      }
      buffLen = 7;            // simulate bufflength, this will be known in finished code
  }

  Serial.println("done writing.");


  Serial.print("The saved array is: ");


  for (int i = 0; i < savedArrays; i++){         // try to write them 
      for(int j = 0; j < sizeof(arrayOfBuff[i]); j++){
          Serial.print(arrayOfBuff[i][j], HEX);
      }
  }

}

void loop() {}

Некоторые моменты относительно кода

  • Я "имитирую", что я получаю данные buffer и buffer2 в моем коде
  • Я также "симулирую""номер сохраненного массива, который будет в готовом коде
  • То же самое с buffLen

Как я могу получить доступ к arrayOfBuff index" x "и рассчитать длину, равную 5?

...