calloc 函数
更多Linux内核驱动开发教程,《Linux内核编程》1~12期,请点击:王利涛老师个人淘宝店:Linux内核编程
calloc函数的作用和malloc一样,也是在动态堆区申请一块内存,calloc函数的原型如下:
void* calloc(unsigned int num,unsigned int size);
有2个参数,表示在内存的动态存储区中分配num个长度为size的连续空间。其中,num为对象的个数,size为每一个申请的对象的单位大小。
与malloc不同的是,calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不做初始化,分配到的空间中的数据是随机数据。
calloc的返回值是一个通用指针:void *,不需要强制类型转换,可以直接转换成各种类型的指针:
int *p = calloc(10, 4);
char *p = calloc(10, 1);
short int *p = calloc(10, 2);
释放calloc申请的内存,也是使用free函数,calloc/free函数的使用示例如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int *p = calloc(10, sizeof(int));
if (p == NULL)
printf("calloc failed!\n";
else
{
int i;
for (i = 0; i < 10; i++)
{
*(p + i) = i;
printf("%d ", *(p + i));
}
}
free(p);
p = NULL;
return 0;
}
驱动开发核心理论,Linux内核开发入门实战视频教程:《Linux内核编程》,具有一线芯片原厂开发经验的驱动工程师录制,详情点击:王利涛老师个人淘宝店:Linux内核编程