malloc和calloc的区别

  1. calloc申请的堆区内存空间是经过初始化的,全部初始化为 0;
  2. malloc申请的堆区内存空间是未经初始化的。
  3. calloc适合为数组申请大小,参数接收两个,第一个为数组元素的数量,第二个为数组元素大小;

例程:malloc和calloc都可以实现

 1 #include <stdio.h>
 2 #include <malloc.h>
 3 
 4 int main() {
 5     int i, n;
 6     scanf("%d", &n);
 7    
 8     //int *arr = (int *) malloc(n*sizeof(int));
 9 //calloc为两个参数
10     int *arr = (int *) calloc(n,sizeof(int));
11     
12     // 以下代码对一个数组第一位进行了赋值
13     arr[0] = 1;
14     
15     // 以下代码对长度为 n 的数组第二位开始做计算,并输出最后一个值的结果
16     for(i = 1; i < n; i++) {
17         arr[i] = arr[i - 1] + i;
18     }
19     printf("%d
", arr[n - 1]);
20     return 0;
21 }