您的位置:首页 > 其它

结构体零长数组的妙用及warning C4200:使用了非标准扩展:结构/联合中的零大小数组解决

2015-07-22 14:06 337 查看
// 零长数组:用于结构体的末尾,本身不占用空间,因此对sizeof没有影响,但有利于实现可变程度的数组

// 如果有点编译器不支持,为了通用型,可以换成1长数组

结构体

struct m

{

short x,max;

int data[0]

}

以上结构体在VC2010编译器下产生如下报警:

warning C4200:使用了非标准扩展:结构/联合中的零大小数组

改成

struct m

{

short x,max;

int data[1]

}

即可通过编译。

使用方法

struct m *temp=(struct m*)malloc(sizeof(struct m)+100);

int i;

for(i=0;i<100;i++)

{

printf("%d -%d\n",i,temp->data[i]);

}

free(temp);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: