请问关于union的有关问题
请教关于union的问题
1.若union包含不同长度的变量,它占用多少内存,是最大的那个吗?
2.假如这样一个结构体:
定义该结构体的变量x,初始化之前,x占多少内存?
如果初始化时union中选的是int i,会不会动态调整内存大小?
如果初始化时给m[50]赋值,然后又给i赋值,那么应该i的值会覆盖m[50]的值对吧?但是m[50]中前4个字节以后的那部分数据还留着吗?
------解决方案--------------------
1. 是用最大的那个
2. 内存不会动态调整的, 会覆盖, 会留着
1.若union包含不同长度的变量,它占用多少内存,是最大的那个吗?
2.假如这样一个结构体:
struct mystruct
{
char h[5];
union
{
char m[50];
int i;
short s;
}
char t[500]
}
定义该结构体的变量x,初始化之前,x占多少内存?
如果初始化时union中选的是int i,会不会动态调整内存大小?
如果初始化时给m[50]赋值,然后又给i赋值,那么应该i的值会覆盖m[50]的值对吧?但是m[50]中前4个字节以后的那部分数据还留着吗?
------解决方案--------------------
1. 是用最大的那个
2. 内存不会动态调整的, 会覆盖, 会留着