C语言函数calloc

来源:互联网 发布:数组是定长的线性表吗 编辑:程序博客网 时间:2024/05/18 02:47

函数简介

  函数名: calloc

  功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。

  跟malloc的区别:

  calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。

  用 法: void *calloc(unsigned n,unsigned size);

  头文件:stdlib.h或malloc.h

  相关函数:malloc、realloc、free

应用举例

  程序例1:

  #include <stdlib.h>

  #include<string.h>

  #include <stdio.h>

  int main(void)

  {

  char *str = NULL;

  /* 分配内存空间 */

  str = (char*)calloc(10, sizeof(char));

  /* 将hello写入*/

  strcpy(str, "Hello");

  /*显示变量内容*/

  printf("String is %s/n", str);

  /* 释放空间 */

  free(str);

  return 0;

  }

  程序例2:

  从这个例子可以看出calloc分配完存储空间后将元素初始化。

  #include<stdio.h>

  #include<stdlib.h>

  int main(void)

  {

  int i;

  int *pn=calloc(10,sizeof(int));

  for(i=0;i<10;i++)

  printf("%3d",*pn++);

  printf("/n");

  free(pn);

  return 0;

  }

  输出十个0。