柔性数组
来源:互联网 发布:人工智能崛起的例子 编辑:程序博客网 时间:2024/04/28 14:35
柔性数组
* 柔性数组即数组大小待定的数组
* C语言中结构体的最后一个元素可以是大小未知的数组
* C语言中可以由结构体产生柔性数组
#include <stdio.h>#include <malloc.h>typedef struct _soft_array{ int len; int array[];}SoftArray;int main(){ int i = 0; SoftArray* sa = (SoftArray*)malloc(sizeof(SoftArray) + sizeof(int) * 10); sa->len = 10; for(i=0; i<sa->len; i++) { sa->array[i] = i + 1; } for(i=0; i<sa->len; i++) { printf("%d\n", sa->array[i]); } free(sa); return 0;}
柔性数组的结构如何只能堆上生成
柔性数组是C99的扩展,简而言之就是一个在struct结构里的标识占位符(不占结构struct的空间)。
声明
typedef struct zero_array{ size_t len; void * array[0];}zero_array_t;
大小
可以用sizeof 看看其大小
printf("%d\n",sizeof(zero_array_t));//CentOS5.6 32 下输出4
zero_array_t 后面跟着一块len的数组,内存布局有兴趣的同学会画一下。
转载自 http://www.cnblogs.com/Daniel-G/archive/2012/12/02/2798496.html
0 0
- 柔性数组
- 柔性数组!
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- Android开发:实时处理摄像头预览帧视频--浅析PreviewCallback,onPreviewFrame,AsyncTask的综合应用
- linux3.4.2移植到fl2440
- 更新了自己的Xcode和系统以后,经常报错
- DVR项目的维护与扩展工作的总结
- Java笔记整理——Java语言基础
- 柔性数组
- 定时删除虚拟列分区
- Ubuntu安装SublimeText2
- checkpoint
- 庄姿座爪妆妆族锥啄宗姿撞滓拙装抓酌遵
- 前端框架选择
- 在while循环中,break,continue,return有什么区别??
- 琢鬃籽椎茁锥佐啄桩琢浊子嘴罪琢字滋谞
- vim小技巧