#include <stdio.h>
#include <malloc.h>
int main() {
int i, n;
scanf("%d", &n);
// 请从下一行开始编写你的代码
int *arr = (int *)calloc(n , sizeof(int));
// int *arr = (int *)malloc(n * sizeof(int));
// 以下代码对一个数组第一位进行了赋值
arr[0] = 1;
// 以下代码对长度为 n 的数组第二位开始做计算,并输出最后一个值的结果
for(i = 1; i < n; i++) {
arr[i] = arr[i - 1] + i;
}
printf("%d\n", arr[n - 1]);
free(arr);
arr = NULL;
return 0;
}
malloc
和 calloc
都可以被用于申请堆上的空间。
malloc
和 calloc
主要有两点不同:
calloc
函数申请的内存空间是经过初始化的,全部被设成了0
,而不像malloc
所申请的空间那样都未经初始化的。calloc
函数适合为数组申请空间,我们可与将第二个参数设置为数组元素的空间大小,将第一个参数设置为数组的元素数量。