如何用斐波那契序列动态填充数组

时间:2018-12-01 18:10:22

标签: c pointers dynamic-memory-allocation fibonacci pointer-arithmetic

我的问题是关于动态内存分配和指针算术的。我有一个在主函数中调用的函数,它应将n个long填充到数组中,并动态地用Fibonacci序列填充它们。我的功能在下面,但似乎没有给我正确的输出。

long* make_fib_array(long n){

int i;
long *fib;  
fib = (long*)malloc(sizeof(long)*n);
if (fib == NULL){
    printf("ERROR: Out of memory\n");
return NULL;}


*fib = 0;
*(fib +1) = 1;
for (i=2;i<n;i++);{
    *(fib +i) = *(fib + (i-1)) + *(fib + (i-2));}     

for(i=0;i<n;i++){
    printf("%ld\n",*(fib + i));}


return fib;}

使用值为0和1的值可以很好地打印,但是此后的值非常大且不期望。我怀疑这可以解决我的指针算法问题,但是我不确定它是什么。

1 个答案:

答案 0 :(得分:1)

只需在循环括号后删除;

来自

for (i=2;i<n;i++);{

for (i=2;i<n;i++) {