3
在以下示例c代碼中,用於Arduino項目中,我正在尋找能夠在指針數組中獲取特定字節數組的大小到字節,例如從指針數組中獲取特定字節數組的大小爲字節
void setup()
{
Serial.begin(9600); // for debugging
byte zero[] = {8, 169, 8, 128, 2,171,145,155,141,177,187,187,2,152,2,8,134,199};
byte one[] = {8, 179, 138, 138, 177 ,2,146, 8, 134, 8, 194,2,1,14,199,7, 145, 8,131, 8,158,8,187,187,191};
byte two[] = {29,7,1,8, 169, 8, 128, 2,171,145,155,141,177,187,187,2,152,2,8,134,199, 2, 2, 8, 179, 138, 138, 177 ,2,146, 8, 134, 8, 194,2,1,14,199,7, 145, 8,131, 8,158,8,187,187,191};
byte* numbers[3] = {zero, one, two };
function(numbers[1], sizeof(numbers[1])/sizeof(byte)); //doesn't work as desired, always passes 2 as the length
function(numbers[1], 25); //this works
}
void loop() {
}
void function(byte arr[], int len)
{
Serial.print("length: ");
Serial.println(len);
for (int i=0; i<len; i++){
Serial.print("array element ");
Serial.print(i);
Serial.print(" has value ");
Serial.println((int)arr[i]);
}
}
在該代碼中,我明白sizeof(numbers[1])/sizeof(byte)
不起作用,因爲numbers[1]
是一個指針,而不是字節數組值。
在這個例子中,我可以在運行時獲取指向字節的指針數組內的特定(運行時確定的)字節數組的長度嗎?瞭解我僅限於在Arduino環境的c(或彙編)中開發。
也打開其他建議,而不是指向字節的指針數組。總體目標是在運行時組織可以檢索的字節列表,長度可以是長度。
你打算在運行時獲取這個字節數組嗎?它是從外部設備或文件讀入嗎?或者它將始終是一個在代碼中聲明的數組。如果是代碼,那麼ndim的解決方案將起作用。如果是外部的,那麼您將通過讀取該文件/源文件來獲得某種大小,以便調整動態數組的大小是? – 2010-04-23 00:48:36
它全部在代碼中設置。外部驅動程序是一個計時器,在特定時間使用特定的字節數組,以使語音合成器說出適合當前時鐘計時器值的事情。 – 2010-04-23 01:05:49