我在项目中使用多维数组时遇到麻烦。我将通过串行通信接收保存到字节数组缓冲区的数据。我想保存此字节数组的数据到另一个数组。因此,我希望一个数组包含大约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() {}
有关代码的一些要点
如何访问arrayOfBuff索引“ x”并计算长度为5?