有一变长结构体
typedef struct A{
char num;
char data[1];
}A;
A a;
char data[10];
memcpy(a.data, data, 10);
结构体a的只占用2字节,但是memcpy之后结构体a的内存是怎么回事,不会影响到其他变量吗,不算越界吗?
如果是结构体指针,那释放该内存时,也只是释放2个字节的内存吗?
总的来说,变长结构体的内存究竟是怎么一回事?
有一变长结构体
typedef struct A{
char num;
char data[1];
}A;
A a;
char data[10];
memcpy(a.data, data, 10);
结构体a的只占用2字节,但是memcpy之后结构体a的内存是怎么回事,不会影响到其他变量吗,不算越界吗?
如果是结构体指针,那释放该内存时,也只是释放2个字节的内存吗?
总的来说,变长结构体的内存究竟是怎么一回事?
c++中程序员是可以任意修改内存的。
所以你要对你数据的有效性进行逻辑上和代码上的控制。