动态内存分配计算fibonacci数列
时间: 2023-09-21 12:02:42 浏览: 56
下面是使用动态内存分配计算斐波那契数列的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int* fibonacci(int n) {
int* fib = (int*)malloc(sizeof(int) * n);
if (fib == NULL) {
printf("Error: Failed to allocate memory\n");
exit(1);
}
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
return fib;
}
int main() {
int n = 10;
int* fib = fibonacci(n);
printf("The first %d numbers in the Fibonacci sequence are:\n", n);
for (int i = 0; i < n; i++) {
printf("%d ", fib[i]);
}
printf("\n");
free(fib);
return 0;
}
```
在这个示例中,我们使用 `malloc()` 函数来分配动态内存来存储斐波那契数列。我们首先检查 `malloc()` 是否成功分配了内存,如果没有成功,我们将打印一条错误消息并退出程序。
然后,我们将第一个和第二个斐波那契数(0 和 1)存储在数组的前两个位置。接下来,我们使用循环计算剩余的斐波那契数并将它们存储在数组中。
最后,我们打印出计算出的斐波那契数列,并使用 `free()` 函数释放动态分配的内存,以避免内存泄漏。