长斐波纳契(内景天花板)
{
积分计数器;
长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/