如何初始化一个可变长度的unsigned char数组?

Ric*_* G. 4 c c++ arrays unsigned char

我通读了这个(如何初始化一个unsigned char数组?),但它并没有完全回答我的问题.

我知道我可以像这样创建一个字符串数组:

const char *str[] =
{
  "first",
  "second",
  "third",
  "fourth"
};
Run Code Online (Sandbox Code Playgroud)

如果我想写()这些我可以使用:write(fd,str [3],sizeof(str [3]));

但是,如果我需要一个可变长度的无符号字符数组呢?我试过这个:

const unsigned char *cmd[] =
{
  {0xfe, 0x58},
  {0xfe, 0x51},
  {0xfe, 0x7c, 0x01, 0x02, 0x00, 0x23},
  {0xfe, 0x3d, 0x02, 0x0f}
};
Run Code Online (Sandbox Code Playgroud)

我得到gcc编译警告,如*"标量初始化器周围的大括号"*"初始化使得指针来自整数而无需强制转换"

joh*_*ohn 6

这是一种方式

const unsigned char cmd1[] = {0xfe, 0x58};
const unsigned char cmd2[] = {0xfe, 0x51};
const unsigned char cmd3[] = {0xfe, 0x7c, 0x01, 0x02, 0x00, 0x23};
const unsigned char cmd4[] = {0xfe, 0x3d, 0x02, 0x0f};

const unsigned char *cmd[] =
{
  cmd1,
  cmd2,
  cmd3,
  cmd4
};
Run Code Online (Sandbox Code Playgroud)