使用指针返回包含前n个Fibonacci数的数组

使用指针返回包含前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,

对于指针和内存分配,我还是个初学者,我正在尝试创建一个函数,使用指针返回斐波那契序列的前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, 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];
}