C语言中用柔性数组实现斐波那契数列
2013-05-23 18:52
281 查看
一个柔性数组使用实例:
![](http://img.blog.csdn.net/20130523185203735)
用柔性数组实现斐波那契数列
![](http://img.blog.csdn.net/20130523184830711)
代码:
#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; }
用柔性数组实现斐波那契数列
代码:
#include <stdio.h> #include <malloc.h> typedef struct _soft_array { int len; int array[]; }SoftArray; SoftArray* create_soft_array(int size) { SoftArray* ret = NULL; if( size > 0 ) { // 下边这句很重要,大小是怎么确定的很复杂 ret = (SoftArray*)malloc(sizeof(*ret) + sizeof(*(ret->array)) * size); ret->len = size; } return ret; } void fac(SoftArray* sa) { int i = 0; if( NULL != sa ) { if( 1 == sa->len ) { sa->array[0] = 1; } else { sa->array[0] = 1; sa->array[1] = 1; for(i=2; i<sa->len; i++) { sa->array[i] = sa->array[i-1] + sa->array[i-2]; } } } } void delete_soft_array(SoftArray* sa) { free(sa); sa = NULL; } int main() { int i = 0; SoftArray* sa = create_soft_array(10); fac(sa); for(i=0; i<sa->len; i++) { printf("%dn", sa->array[i]); } delete_soft_array(sa); return 0; }
相关文章推荐
- c语言学习笔记(4)struct和union:柔性数组存储斐波那契数列以及union判断系统大小端
- [C语言]贪吃蛇_结构数组实现
- 程序猿之---C语言细节29(#define宏大小、空结构体大小、柔性数组不知道你见过没)
- 用C语言实现判断两个数组中是否有相同的元素,有就输出“有”,没有则输出“没有”
- C语言实现数组所有子集
- 自己写的,用c语言实现的一个数组存储的线性表
- C语言------数据结构(栈操作,数组实现)
- C语言数组实现循环队列
- 数据结构之数组(C语言实现)
- C语言-第五章、用数组实现批量数据处理
- C语言中利用#define和#undef定义初始化数组,实现不同的初始化效果
- 1、用C语言实现字符数组1拷贝到字符数组2,替代strcpy函数
- C语言数组实现学生信息管理系统设计
- C语言用函数指针的数组简单实现计算器功能
- C语言柔性数组
- C语言变长消息定义:柔性数组
- 计算数组的和: C=(3A+4B)/8和C语言实现的FIR算法,改成ARM汇编程序
- c语言实现快速排序算法(直接给出数组,从文件中读取的方法后续会贴出来)
- C语言完美实现动态数组代码分享
- C语言的const,volate,struct,柔性数组