使用指针返回包含前n个Fibonacci数的数组
对于指针和内存分配,我还是个初学者,我正在尝试创建一个函数,使用指针返回斐波那契序列的前n个数字。当我尝试使用这段代码时,它会返回随机数,但我不知道如何修复它。代码如下:使用指针返回包含前n个Fibonacci数的数组,c,pointers,fibonacci,C,Pointers,Fibonacci,对于指针和内存分配,我还是个初学者,我正在尝试创建一个函数,使用指针返回斐波那契序列的前n个数字。当我尝试使用这段代码时,它会返回随机数,但我不知道如何修复它。代码如下: int* generateFibonacci(int n) { // make an array for n ints int *result = malloc(n * sizeof(int)); if (result == NULL) { // fail printf("I have no memory,
int* generateFibonacci(int n)
{
// make an array for n ints
int *result = malloc(n * sizeof(int));
if (result == NULL)
{
// fail
printf("I have no memory, sorry. Exiting");
exit(1);
}
result[0] = 0;
result[1] = 1;
for (int i = 0; i < n; i++)
{
result[i + 2] = result[i - 1] + result[i - 2];
}
return result;
}
int*generateFibonacci(int n)
{
//为n整数创建一个数组
int*result=malloc(n*sizeof(int));
如果(结果==NULL)
{
//失败
printf(“对不起,我没有记忆,正在退出”);
出口(1);
}
结果[0]=0;
结果[1]=1;
对于(int i=0;i
如果有人能给我指出正确的方向那就太好了,谢谢 您正在
for
循环中访问超出边界的数组
for (int i = 0; i < n; i++)
{
result[i + 2] = result[i - 1] + result[i - 2];
}
for (int i = 2; i < n; i++){
result[i] = result[i - 2] + result[i - 1];
}