
calloc函数文档
功能摘要:
calloc函数动态应用大小为size的nmemb连续内存空间(即,所应用的总空间大小为nmemb * size)calloc内存哪里分配,并且所有这些内存空间均初始化为0. 如果nmemb或size参数的值为0,返回值将根据标准库的实现而有所不同,它可以为NULL,也可以返回一个指针值,以后可以将其传递给free函数.
原型:

#include <stdlib.h> ... void *calloc(size_t nmemb, size_t size);
参数分析:
指定要分配的内存块数量
以字节为单位指定每个内存块空间的大小

返回值:
1. 如果函数调用成功,它将返回一个指向请求的内存空间的指针. 由于返回类型是一个空指针(void *),因此可以将其转换为任何类型的数据.
2. 如果函数失败,则返回值为NULL.
3. 如果nmemb或size参数设置为0,则返回值也可能为NULL,但这并不意味着函数调用失败.

演示:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, num;
long sum = 0;
int *buffer;
printf("你准备输入多少个整数:");
scanf("%d", &num);
buffer = (int *)calloc(num, sizeof(int));
if (buffer == NULL)
{
printf("内存空间不足!\n");
exit(1);
}
for (i = 0; i < num; i++)
{
printf("请输入第%d个数字:", i+1);
scanf("%d", &buffer[i]);
sum += buffer[i];
}
printf("它们的和是:%ld\n", sum);
free(buffer);
return 0;
}

备注:

calloc函数和malloc函数之间的重要区别在于,calloc函数在申请内存后会自动将内存空间初始化为零,并且malloc函数不会执行初始化操作,并且内部数据是随机的.
因此,以下两种书写方式是等效的:
// calloc() 分配内存空间并初始化 char *str1 = (char *)calloc(8, 10); // malloc() 分配内存空间并用 memset() 初始化 char *str2 = (char *)malloc(80); memset(str2, 0, 80);
震威网络为您提供各种服务:
软件开发,计算机配件销售,WIFI路由器销售,现场计算机维护,现场安装系统,系统安装,软件和硬件安装,计算机除尘,显示器维护,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络维护calloc内存哪里分配,打印机维修,打印机碳粉,Apple计算机安装系统,Apple计算机双重安装系统,监视安装和维护,计算机外包,笔记本计算机维修,餐饮,美容行业软件安装等. . . .
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-230279-1.html
因为妓者和粉仔没有什么区别