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

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

发布了157 篇原创文章 · 获赞 26 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/u011624903/article/details/104010527