柔性数组
来源:互联网 发布:睡眠不好怎么办知乎 编辑:程序博客网 时间:2024/04/29 19:46
#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);}int main(){ int i = 0; SoftArray* sa = create_soft_array(10); fac(sa); for(i=0; i<sa->len; i++) { printf("%d\n", sa->array[i]); } delete_soft_array(sa); return 0;}