检查uint8_t数组是否为空

时间:2017-05-31 01:29:48

标签: arduino uint8t

如果我声明以下内容(其中包含类似{0x7E,0x00,...}的HEX):

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

即使我没有使用任何值启动变量。 问题是,我无法判断变量是否已使用值进行了初始化。怎么做到这一点?为什么它在不启动它的情况下打印上面的内容?

1 个答案:

答案 0 :(得分:2)

您无法确定C中指针数组的大小。您必须传入数组长度,除非它是静态分配的。但是,传入指针的情况并非如此。