C语言的零长度数组

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

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

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

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

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

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

零长度数组的使用实例

上述程序运行的结果为:

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

展开阅读全文

页面更新:2024-03-24

标签:数组   长度   目的   常量   指针   体内   内存   语言   结构   地址   空间

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top