【求助】一个奇怪的共用体问题!!!
各位大神,我遇到了一个奇怪的共用体问题,我自己实在没搞懂原因,望各位大侠指点。
代码如下:
#include <stdio.h>
int main()
{
struct team{
int x;
union {
int i;
char ch;
}data[];
};
struct team temp;
printf("temp size %d.\n",(int)sizeof(temp));
return 0;
}
i@i:~$ ./a.out
temp size 4.
#include <stdio.h>
int main()
{
struct team{
//int x;
union {
int i;
char ch;
}data[];
};
struct team temp;
printf("temp size %d.\n",(int)sizeof(temp));
return 0;
}
i@i:~$ gcc tes.c
tes.c: In function ‘main’:
tes.c:10: error: flexible array member in otherwise empty struct
testcsdn.cpp(14): warning C4200: nonstandard extension used : zero-sized array in struct/union
1> Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array
testcsdn.cpp(17): warning C4101: 'temp' : unreferenced local variable
问题主要在“柔性数组”上。