我正在调试网络应用程序。
我必须模拟一些交换的数据才能使应用程序正常工作。在C ++中,您可以执行类似
的操作char* myArray = { 0x00, 0x11, 0x22 };
但是,我似乎找不到这种语法的C等价物。
基本上我只想用硬编码值填充数组。
答案 0 :(得分:37)
您可以在C中执行相同的操作,但是您应该将其声明为char[]
,而不是char*
,以便您可以使用sizeof
运算符来获取其大小:
char myArray[] = { 0x00, 0x11, 0x22 };
size_t myArraySize = sizeof(myArray); // myArraySize = 3
答案 1 :(得分:5)
尝试:
char myArray[] = { 0x00, 0x11, 0x22 };
答案 2 :(得分:5)
为了完整起见,使用C99你也可以使用复合文字:
char *myArray = (char []) {0x00, 0x11, 0x22 };
如果要求与C ++的源代码兼容,最好不要使用此构造,因为它是 - afaik - 不是C ++标准的一部分。
答案 3 :(得分:2)
不
char myArray[] = {0x00, 0x01,0x02};
工作?
答案 4 :(得分:2)
char myArray [] = {0x00,0x11,0x22};