【C】长度为0的数组妙用【转】

长度为0的数组在GNU C是可以使用的,在定义一个变长对象的结构体是非常有用的。
请看下例。

struct line {
int length;
char contents[0];
};
struct line *thisline = (struct line *)
malloc (sizeof (struct line) + this_length);
thisline->length = this_length;

显然这样的代码要比下面的定义节省空间

struct line {
int length;
char *contents;
};
struct line {
int length;
char contents[1];
};

(以上来自gcc文档)
————————————————
原文链接:https://blog.csdn.net/y___y/article/details/2027546

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一组:杨昊 AngularJS中的$scope和$rootScope 在帮同事写代码的时候发现了这个需求,便查...
    胡諾阅读 4,251评论 0 0
  • 最近写程序的时候,突然想到了这个问题:在C++中数组的长度有限制吗?我觉得肯定是有的,但限制是多少呢?经过了好长时...
    退休码农飞伯德阅读 6,618评论 1 2
  • 数组的长度在编译时就确定了。长度为0的数组在标准C和C++中是不允许的,编译时会产生错误。但在GNU C中,这种用...
    _zhw阅读 3,173评论 0 1
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,414评论 0 5
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 127,798评论 2 7

友情链接更多精彩内容