首先看看什么是柔性数组
C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其 他成员。柔性数组成员允许结构中包含一个大小可变的数组。sizeof返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。
基本模型为typedef...
分类:
编程语言 时间:
2015-08-16 21:25:09
阅读次数:
222
#include #include #define N 4#define STR "abcd" int main(){ struct student { }stu; printf("N = %d\n", sizeof(N)); printf("n...
分类:
编程语言 时间:
2015-07-19 16:10:57
阅读次数:
131
柔性数组:数组大小待定的数组。C语言中结构体最后一个元素可以是大小未知的数组。C语言可以由结构体产生柔性数组#include #include typedef struct _soft_array{ int len; int array[];}SoftArray;int main(){ ...
分类:
编程语言 时间:
2015-07-19 11:41:34
阅读次数:
151
typedef struct mystruct{ int a; double b; char c[0];}Ms,*Pms;int main(int argc, char* argv[]){ Ms test; coutc,c); cout<<sizeof(*pms)<<endl; free(pms);...
分类:
编程语言 时间:
2015-06-20 19:32:04
阅读次数:
112
在讲述柔性数组成员之前,首先要介绍一下不完整类型(incomplete type)。不完整类型是这样一种类型,它缺乏足够的信息例如长度去描述一个完整的对象。6.2.5Typesincomplete types(types that describe objects but lack informat...
分类:
编程语言 时间:
2015-05-21 10:44:01
阅读次数:
163
过去你的自己,你好。 照顾宝宝,写完第一篇就没什么时间,既然上次讲的就是数据结构,这次也讲点相关的。 其实接触柔性数组也是个比较奇妙的过程,你以后会遇到个学长,毕业后从事软件行业,在中兴锻炼过,将会给你很多软件方面的启发。一次讨论结构体内数据结构类型强制转换的问题时(剧透一下,是你用的编译器中的一....
分类:
编程语言 时间:
2015-05-20 18:16:44
阅读次数:
194
首先,sds即simple dynamic string,redis实现这个的时候使用了一个技巧,并且C99将其收录为标准,即柔性数组成员(flexible array member),参考资料见这里。柔性数组成员不占用结构体的空间,只作为一个符号地址存在,而且必须是结构体的最后一个成员。柔性数组成...
分类:
其他好文 时间:
2015-05-17 18:40:34
阅读次数:
126
柔性数组结构成员
结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其 他成员。柔性数组成员允许结构中包含一个大小可变的数组。sizeof返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。
结构体变长的妙用——0...
分类:
编程语言 时间:
2015-03-19 13:16:02
阅读次数:
167
在游戏前后端交换的过程中,经常会用到变成的消息体,因为有的内容的大小是位置的,例如一条微博,微博的内容大小是未知的。
一般的做法是定义一个char*类型的指针,然后指定其长度,代码如下:
typedef struct{
unsigned len;
char* pData;
}Msg;
使用的时候是这样的:
char str[] = "hello world!";
unsigne...
分类:
编程语言 时间:
2015-01-30 17:47:38
阅读次数:
211
柔性数组* 柔性数组即数组大小待定的数组.* C语言中结构体的最后一个元素可以是大小未知的数组* 由于c 语言中第一数组是,必须声明数组的大小,所以数组大小是固定的,当程序需要变长数组是不被允许的,所以巧妙地使用结构体,构造弹性数组,可以转化为可变长的数组,* C语言中可以由结构体产生柔性数组 1 ...
分类:
编程语言 时间:
2014-11-29 17:25:42
阅读次数:
259