我通过这个阅读(How to initialize a unsigned char array?),但它不完全回答我的问题。如何初始化一个可变长度的unsigned char数组?
我知道可以创建字符串一个这样的数组:
const char *str[] =
{
"first",
"second",
"third",
"fourth"
};
,如果我想要写()这些我可以使用:写(FD,STR [3],的sizeof(STR [3 ]));
但是如果我需要一个可变长度的无符号字符数组呢?我尝试这样做:
const unsigned char *cmd[] =
{
{0xfe, 0x58},
{0xfe, 0x51},
{0xfe, 0x7c, 0x01, 0x02, 0x00, 0x23},
{0xfe, 0x3d, 0x02, 0x0f}
};
,我得到的gcc编译警告,如 *“牙套周围标量初始化” *“初始化将指针从整数,未投”
你不能做,没有你的子阵列引入的名字。并且顺便说一下,你的代码被编入了'write(fd,str [3],strlen(str [3]));'。 'strlen'不是'sizeof'。指针上的'sizeof'指向的是指针的大小,而不是它所指向的数据的大小。 – john 2013-03-25 15:41:01
没有可变长度的数组。你的'str'是一个指针数组,而不是可变长度数组。用字符串文字初始化指针是可以的。没有数组文字,您不能使用支撑列表来初始化指针。 – 2013-03-25 15:49:19
好吧,明白了。我理解并同意这里的评论。谢谢!! – 2013-03-25 15:57:55