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