柔性数组的使用
来源:互联网 发布:php strncmp函数 编辑:程序博客网 时间:2024/04/30 08:00
#include <stdio.h>#include <malloc.h>typedef struct _soft_array{ int len; int a[];}SoftArray;int main(void){ int i = 0; printf("sizeof(SoftArray) = %d\n",sizeof(SoftArray)); //sizeof(len) = 4;a[]只起到占位符的作用 SoftArray* array = (SoftArray*)malloc(sizeof(SoftArray)+sizeof(int)*10); array->len = 10; for(i=0;i<array->len;i++) { array->a[i] = i+ 1; } for(i=0;i<10;i++) { printf("array->a[%d] = %d\n",i,array->a[i]); } printf("--end--\n"); return 0;}
举例使用:
//斐波那契数列的使用#include <stdio.h>#include <malloc.h>typedef struct _soft_array{ int len; int a[];}SoftArray;SoftArray* createArray(int size){ printf("create array...\n"); SoftArray* ret = NULL; if(size > 0) { ret = (SoftArray*)malloc(sizeof(*ret) + size * sizeof(*(ret->a))); //ret = (SoftArray*)malloc(sizeof(SoftArray) + size * sizeof(int)); //与上面等价 ret->len = size; } return ret;}void fibonacci(SoftArray* sa){ printf("create fibonacci array...\n"); int i = 2; if(sa != NULL) { if(sa->len == 1) { sa->a[0] = 1; } else { sa->a[0] = 1; sa->a[1] = 1; for(i=2;i<sa->len;i++) { sa->a[i] = sa->a[i-1] + sa->a[i-2]; } } }}void deleteArray(SoftArray* sa){ printf("free array...\n"); free(sa);}int main(void){ int i = 0; printf("sizeof(SoftArray) = %d\n",sizeof(SoftArray)); //sizeof(len) = 4;a[]只起到占位符的作用 SoftArray* array = createArray(10); fibonacci(array); printf("len = %d\n",array->len); for(i=0;i<array->len;i++) { printf("%d\n",array->a[i]); } deleteArray(array); printf("--end--\n"); return 0;}
0 0
- 柔性数组的使用
- 柔性数组的了解
- C99新增的柔性数组
- GNU下的柔性数组
- 柔性数组
- 柔性数组!
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- 柔性数组
- JDBC如何进行超时设置
- adb批量安装apk(支持中文名字apk)
- 学习js笔记二(Math)
- java操作xml笔记
- DERemede玫瑰精油氨基酸滋养洗面奶怎么样,去角质效果好 ...
- 柔性数组的使用
- IPUtil工具类,java 获取IP所属地
- HTTP协议详解
- strcmp
- android模拟器4.4.2屏幕旋转90度
- Sort a Map<Key, Value> by values (Java)
- C#中Abstract和Virtual
- PLA算法---C++
- 欢迎使用CSDN-markdown编辑器