这么定义是没问题的,编译肯定是没有问题的([31]后面是不是少了一个分号)。但是关键是struct time a[10];定义在哪了(这么定义相当于37200个int类型)。如果是一个全局变量,那好说,这个占用数据段的空间,一般来说数据段空间比较大,能够分配出来这么大空间。如果只是一个局部变量的话,那很有...
struct st{ int pos1; int pos2; int pos3; st() { } st(int a, int b, int c) { pos1 = a, pos2 = b, pos3 = c; }};int main(){ st position[10] = {st(1,1,1)};}作为C++代码编译,没有报错 ...
如果用指针申请空间的方式为结构体分配空间时,伸缩性数组占用的空间是(分配的空间-其他成员占用的空间),也就是说其大小不是固定的,故而不得不放在最后,因为结构体的内存是连续分配的。至于要求至少有一个其他成员,是因为必须得保证建立一个这样的结构体时,有一个实际的成员,以便分配空间。