Je débogue une application réseau.
Je dois simuler certaines des données échangées pour que l'application fonctionne. En C++, vous pouvez faire quelque chose comme
char* myArray = { 0x00, 0x11, 0x22 };
Cependant, je n'arrive pas à trouver un équivalent C pour cette syntaxe.
Fondamentalement, je veux juste remplir un tableau avec des valeurs codées en dur.
Vous pouvez faire la même chose en C, mais vous devez le déclarer de type char[]
, ne pas char*
, afin que vous puissiez obtenir sa taille avec l'opérateur sizeof
:
char myArray[] = { 0x00, 0x11, 0x22 };
size_t myArraySize = sizeof(myArray); // myArraySize = 3
Par souci d'exhaustivité, avec C99, vous pouvez également utiliser des littéraux composés:
char *myArray = (char []) {0x00, 0x11, 0x22 };
Si la compatibilité du code source avec C++ est une exigence, il vaut mieux ne pas utiliser cette construction, car elle - afaik - ne fait pas partie de la norme C++.
Essayez avec:
char myArray[] = { 0x00, 0x11, 0x22 };
Ne fait pas
char myArray[] = {0x00, 0x01,0x02};
travail?
char myArray [] = {0x00, 0x11, 0x22};