c语言柔性数组

柔性数组必须放在结构体最后边

大小为0

不占用结构体空间

运行期分配空间时大小任意,由使用方保证使用时不越界

因为放在结构体最后,所以编译器可以算出结构体截止地址,也就可以算出最后一个数组的起始地址(将c程序编译成汇编之后,c中所有对变量的操作,都转化成对一个一个保存变量值的内存的地址的操作),可以顺利转化成汇编代码。

使用方在使用时,比如如果是字符串数组,由\0确保字符串结束,如果是其他类型数组,访问时,再额外传一个数组大小的参数

下边文章写的比较好

https://zhuanlan.zhihu.com/p/94855692

你可能感兴趣的:(c&c++)