关于如何使用变长结构体
不羁的野马 2017-10-12 11:53:04 请问这种多层嵌套的变长结构体,怎样申请内存会比较合理呢,我遇到一个问题就是,A结构体的a_val_1[0]和a_val[1]之间的地址差只有sizeof(B)那么大,也就是两个BYTE那么长,从而导致a_val_1[0].b_val_2[0]的c_val_1和c_val_2两个值被a_val_1[1]的b_val_1和b_len覆盖了。(linux开发环境中)
struct C
{
BYTE c_val_1;
BYTE c_val_2;
}
struct B
{
BYTE b_val_1;
BYTE b_len;
struct C b_val_2[0];
}
struct A
{
BYTE a_len;
struct B a_val_1[0];
}
还有遇到一个结构体中存在两个变长变量的时候,怎么处理
struct D
{
BYTE d_len;
BYTE d_val_1[0];
BYTE d_val_2[0];
}