C++柔性数组

柔性数组我认为就是动态数组,在C++中,定义柔性数组需要两个步骤:
1.定义一个结构体
2.在结构体最后一个元素定义一个没有长度的数组

下面的b就是一个柔性数组,如果把b放到a的上面是会报错的

struct MyStruct
{	
	int a;
	int b[];
}

执行下面代码,会打印出4,因为4是int类型a的大小,四个字节,也就是说,b不占用任何空间

int main()
{
	MyStruct ms;
	std::cout << sizeof(ms);
}

如果将结构体调整成

struct MyStruct
{	
	int a;
	int b[1];
}

那么sizeof(ms)会打印出8,一个a加一个长度为1的b

也就是说,柔性数组的初始值,才会影响这个结构体的大小

发布了144 篇原创文章 · 获赞 23 · 访问量 10万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览