typedef struct {
uint64_t register;
uint32_t size;
} element_t;
typedef struct {
uint64_t idx;
element_t element[]; // Flexible array
} frame_t
我想在我为此结构保留的已定义内存位置静态声明
frame_t *frame = (frame_t *) 0xdeadbeef; /* this is the predefined memory location */
*frame = {
{.idx = 0x1;
.element = {
[0] = {
.register = 0xdad;
.size = 0x10;
},
[1] = { .register =0xcad;
.size = 0x20;
}
}
},
{ .idx = 0x2;
.element = {
[0] = {
.register = 0xdead;
.size = 0x10;
}
}
}
};
为什么上面的灵活数组静态声明不起作用,声明此结构的正确方法是什么?
这里有很多问题