长斐波纳契(内景天花板)
{
积分计数器;
长num1=1,num2=1,和;
内角[天花板+1];
for(counter=1;counter{
arr[计数器]=num1;
//printf(“%d\n”,num1);//打印序列
和=num1+num2;
num1=num2;
num2=总和;
}
返回arr;
}
现在,如果我尝试访问这个数组,比如使用int a = fibonacci(10);,它就不会有任何抱怨。但是,如果我试图访问单个元素,比如a[1],它会告诉我
下标值既不是数组也不是指针
我做错什么了?

最佳答案

.. 如果我试图访问一个单独的元素,比如[1]或其他。。

int a = fibonacci(10);

a是一个整数变量,而不是使用运算符[]的数组。
方法定义应该是-
int* fibonacci(int ceiling)
{
    // ...
    return arr ;
}

int *a = fibonacci(10) ;

现在您可以在[]上使用a运算符。但是,您返回的是一个错误的局部变量引用(即,驻留在堆栈上)。您应该使用malloc为数组动态分配内存,以后应该使用free它。

关于c - 斐波那契和数组返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5740608/

10-12 16:09
查看更多