2017-05-31 1 views
0

Si je déclare ce qui suit (qui détiennent un HEX comme {0x7E, 0x00, ...}):Vérifiez si uint8_t tableau est vide

uint8_t response[size]; 

Et j'imprimer avec:

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); 
    } 

} 

Il imprime ceci que je ne sais pas d'où il vient:

0088FE3FF0FBFE3FA0382040A0ECFE3FAE10204001000000DCEBFE3FC033204018000000BC981800 

Même si je n'ai pas initialisé la variable avec une valeur quelconque. Le problème est que je ne peux pas dire si la variable a ben initilized avec des valeurs ou non. Comment accomplir cela? Et pourquoi il imprime le dessus sans l'initier?

Répondre

2

Vous ne pouvez pas déterminer la taille d'un tableau de pointeurs dans C. Vous devez entrer la longueur du tableau, sauf si elle est allouée de manière statique. Cependant ce n'est pas le cas avec quoi que ce soit où vous passez dans un pointeur.