2017-05-31 456 views
0

如果我宣佈了下述(持有像{0x7E的,0×00,...}十六進制):檢查uint8_t數組爲空

uint8_t response[size]; 

我打印帶有:

void printHex(uint8_t* hex) { 

    for(unsigned int i=0; i<sizeof(hex)/sizeof(hex[0]); i++) { 
    if(hex[i] < 16) { 
     Serial.print("0"); 
    } 
    Serial.print(hex[i], HEX); 
    } 

} 

它打印這個,我不知道它來自哪裏:

0088FE3FF0FBFE3FA0382040A0ECFE3FAE10204001000000DCEBFE3FC033204018000000BC981800 

即使我沒有初始化任何值的變量。 問題是,我無法分辨變量是否已用數值初始化。如何做到這一點?爲什麼它沒有啓動它而打印上述內容?

回答

2

無法確定C中指針數組的大小。除非靜態分配,否則必須傳入數組長度。但是,對於任何傳遞指針的情況,情況並非如此。