malloc和calloc函数
时间: 2023-12-06 16:35:14 浏览: 67
malloc函数的用法
malloc和calloc都是C语言中用于动态分配内存的函数。
1. malloc函数:
- 原型:void* malloc(size_t size);
- 功能:在堆内存中分配指定大小的连续内存块,并返回指向该内存块起始地址的指针。
- 参数:要分配的内存块的大小(以字节为单位)。
- 返回值:若内存分配成功,则返回指向分配内存块的指针;若内存分配失败,则返回NULL。
- 注意事项:使用malloc分配的内存块中的初始值是未定义的,需要手动初始化。
2. calloc函数:
- 原型:void* calloc(size_t num, size_t size);
- 功能:在堆内存中分配指定数量和大小的连续内存块,并返回指向该内存块起始地址的指针。
- 参数:num表示要分配的内存块的数量,size表示每个内存块的大小(以字节为单位)。
- 返回值:若内存分配成功,则返回指向分配内存块的指针;若内存分配失败,则返回NULL。
- 注意事项:calloc在分配内存块后,会将每个字节都初始化为0。
两个函数的区别在于内存分配后的初始值和参数的不同。malloc只分配内存空间,不进行初始化;而calloc在分配内存空间后,会将每个字节初始化为0。因此,如果需要初始化为0的内存块,可以使用calloc函数。
阅读全文