如果我声明以下内容(其中包含类似{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
即使我没有使用任何值启动变量。 问题是,我无法判断变量是否已使用值进行了初始化。怎么做到这一点?为什么它在不启动它的情况下打印上面的内容?
答案 0 :(得分:2)
您无法确定C中指针数组的大小。您必须传入数组长度,除非它是静态分配的。但是,传入指针的情况并非如此。