美文网首页
【C】长度为0的数组妙用【转】

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

作者: 沐一同学 | 来源:发表于2021-06-07 09:48 被阅读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

相关文章

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

    长度为0的数组在GNU C是可以使用的,在定义一个变长对象的结构体是非常有用的。请看下例。 显然这样的代码要比下面...

  • 长度为0的数组

    数组的长度在编译时就确定了。长度为0的数组在标准C和C++中是不允许的,编译时会产生错误。但在GNU C中,这种用...

  • java核心技术1笔记一

    java 允许数组长度为0, new elementType[0] 数组长度为0与null不同。大数值 BigIn...

  • 零长度数组在内核中的运用

    什么叫0长度数组 零长度数组就是长度为零的数组,在内存空间中不占用存储位置。 ANSI C 标准规定定义一个数组时...

  • SDS与C字符串的区别

    根据传统, C 语言使用长度为N+1的字符数组来表示长度为N的字符串, 并且字符数组的最后一个元素总是空字符'\0...

  • js 数组

    js 中数组的长度发生改变,数组就真的发生改变,快速清空数组就让数组长度为0js 数组的方法

  • JNI开发 java jbyteArray跟 c++ std::

    jbytearray转std::String c++中 因为char* 默认以‘\0’为结束符,导致转换后的长度不...

  • LeetCode 1929. 数组串联

    题目 给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0...

  • 生成随机数+

    生成随机序列用法: 生成长度为100的数组,每个元素为0:

  • 零散知识点

    NSInteger转 Byte 数组,长度为2 NSInteger dis = (NSInteger)distan...

网友评论

      本文标题:【C】长度为0的数组妙用【转】

      本文链接:https://www.haomeiwen.com/subject/xitleltx.html