C/C++ · 2012/07/09

calloc

转自百度百科:http://baike.baidu.com/view/653964.htm

函数简介

  • calloc是一个C语言函数
  • 函数名: calloc
  • void *calloc(unsigned n,unsigned size);
  • 功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。
  • 跟malloc的区别:
  • calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。
  • 用 法: void *calloc(unsigned n,unsigned size);
  • 头文件:stdlib.h或malloc.h
  • 相关函数:mallocreallocfree

应用举例

程序例1
   1: #include <stdlib.h>

   2: #include <string.h>

   3: #include <stdio.h>

   4:  

   5: int main(void)

   6: {

   7:     char *str = NULL;

   8:  

   9:   /* 分配内存空间 */

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

  11:   /* 将hello写入*/

  12:   strcpy(str, "Hello");

  13:   /*显示变量内容*/

  14:   printf("String is %sn", str);

  15:  

  16:   /* 释放空间 */

  17:   free(str);

  18:   return 0;

  19: }

  20:  

程序例2

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

#include<stdio.h>

#include<stdlib.h>

 

int main(void)

{

    int i;

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

 

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

    {

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

    }

    printf("n");

    

    free(pn);

    return 0;

}

输出十个0。