C中的硬编码字节数组

我正在调试网络应用程序。

我必须模拟一些交换的数据才能使应用程序正常工作。 在C ++中,你可以做类似的事情

char* myArray = { 0x00, 0x11, 0x22 }; 

但是,我似乎无法找到这种语法的C等价物。

基本上我只是想用硬编码值填充数组。

您可以在C中执行相同的操作,但是您应该将其声明为char[]类型,而不是char* ,以便您可以使用sizeof运算符获取其大小:

 char myArray[] = { 0x00, 0x11, 0x22 }; size_t myArraySize = sizeof(myArray); // myArraySize = 3 

试试:

 char myArray[] = { 0x00, 0x11, 0x22 }; 

仅仅为了完整起见,使用C99你也可以使用复合文字:

 char *myArray = (char []) {0x00, 0x11, 0x22 }; 

如果要求与C ++的源代码兼容,最好不要使用此构造,因为它是 – afaik – 不是C ++标准的一部分。

 char myArray[] = {0x00, 0x01,0x02}; 

工作?

  • 数组初始化
  • 数组初始化

    char myArray [] = {0x00,0x11,0x22};