我写了一段C代码如下:
typedef struct {
unsigned int buffer_ctrl[4];
unsigned int buffer1[10];
unsigned int buffer2[40];
unsigned int buffer3[20];
unsigned int buffer4[15];
unsigned int *buffer_ptr[4] = {buffer1, buffer2, buffer3, buffer4};
unsigned int canary[4];
} buffer_t;
我将其写在主代码中包含的头文件中。我已经阅读了很多有关C语言中锯齿状数组的示例,并认为这可以正常工作。链接之一是Do jagged arrays exist in C/C++?。
但是,当我编译时,出现错误“ expected';”在声明结束时”。有人可以帮忙解释一下这里的错误吗?
谢谢!
最佳答案
您不能在buffer_ptr
结构本身的定义内分配给buffer_t
。您必须先定义buffer_t
类型的变量,然后再分配给它。
您可以执行以下操作:
buffer_t bt = {
.buffer_ptr[0] = bt.buffer1,
.buffer_ptr[1] = bt.buffer2,
.buffer_ptr[2] = bt.buffer3,
.buffer_ptr[3] = bt.buffer4
};
关于c - 锯齿状数组在C-中的实现错误:预期为';'在声明 list 的末尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53274062/