柔性数组
来源:互联网 发布:怎么判断两个矩阵相似 编辑:程序博客网 时间:2024/04/29 16:59
柔性数组
柔性数组
* 柔性数组即数组大小待定的数组
* 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的数组,内存布局有兴趣的同学会画一下。
0 0
- 柔性数组
- 柔性数组!
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 丢掉职场中的四个幻想
- 为NSView支持拖拽文件
- 第五周项目4-静态成员应用
- C++ STL lower_bound & upper_bound
- lmdb源码阅读
- 柔性数组
- css实现自适应屏幕高度
- Java开发者写SQL时常需要注意的8+13个地方
- 如何在没有外网的情况下,通过Centos系统光盘创建yum源,解决rpm包依赖性问题
- OSS--跨平台的统一音频接口深入分析
- 写点什么呢?
- 算法设计与分析 二分查找
- Python默认编码错误SyntaxError: Non-ASCII character '\xe5'之解决方法
- 制作ico图标