伍仟未来网

您现在的位置是:首页 > 推荐 > 正文

推荐

数组长度(C语言的零长度数组)

3695000future2022-11-23推荐42

零长度数组是gnu/gcc的实用性扩展,又称为可变数组,目的是为了构造可变长的结构体,更好地管理内存。

零长度数组相比于数组指针,优势在于:

1、节省了数组指针占用的空间;

2、一次性申请/释放内存(结构体 数组),不用分两次申请和释放(申请时先申请结构体内存,再申请数组内存:释放时先释放数组内存,再释放结构体内存)。

使用时在结构体的后位置声明一个长度为0的数组,这样这个结构体就成为了一个可变长的结构体。

对于编译器而言,这个长度为0的数组仅仅是一个符号,不会占用任何空间。在结构体中,它只是代表了一个偏移量,为一个不可修改的地址常量。

零长度数组的使用实例

上述程序运行的结果为:

从运行结果可以发现,结构体中的变长数组并不占用空间,且变长数组指向的地址就是所在结构体的末端地址。