calloc函数使用注意事项

简介: 1、calloc函数功能 calloc函数的功能与malloc函数的功能相似,都是从堆分配内存。函数声明如下: void *calloc(int n,int size) 函数返回值为void型指针。

1、calloc函数功能

calloc函数的功能与malloc函数的功能相似,都是从堆分配内存。函数声明如下:

void *calloc(int n,int size)

函数返回值为void型指针。

如果执行成功,函数从堆上获得size * n的字节空间,并返回该空间的首地址。如果失败,返回NULL。

该函数与malloc函数的一个显著区别是:calloc函数得到的内存空间是经过初始化的,其内容全为0。所以calloc函数适合为数组申请空间,可以将Size设置为数据元素的空间长度,将n设置为数据的空间。

 

2、案例分析


#include "stdafx.h" 
#include  
#define SIZE 10
int _tmain(int argc, _TCHAR* argv[]) 
{ 
    int *p  = NULL; 
    int i = 0;
    /* 从堆里分析SIZE个空间 */ 
    p = (int *)calloc(SIZE,sizeof(int)); 
    if (p == NULL) 
    { 
        printf("Error in calloc\\n"); 
        return -1; 
    }
    /* 给SIZE个空间赋值  */ 
    for (i=0;i


image


需要注意的是,calloc分配的空间也需要自动释放。

上面注意到,一些没有被赋值的数组元素全部为0,证明了上面所提到的:

calloc函数得到的内存空间是经过初始化的,其内容全为0

相关文章
|
SQL XML Java
MyBatis-Plus——代码生成器(3.5.1+版本)
MyBatis-Plus——代码生成器(3.5.1+版本)
2574 0
MyBatis-Plus——代码生成器(3.5.1+版本)
|
安全 前端开发 Linux
显示子系统、显示子前后端、LinuxFB与Wayland的区别分析
显示子系统、显示子前后端、LinuxFB与Wayland的区别分析
|
测试技术 Linux Android开发
i2c总线及设备测试工具i2ctools:i2cdetect、i2cdump、i2cget、i2cset
本文介绍了i2ctools工具集的使用,包括i2cdetect、i2cdump、i2cget和i2cset,这些工具有助于I2C设备的开发和调试,通过检测设备、读写寄存器和数据块来提高开发效率。
2737 1
|
传感器 编解码 Linux
V4L2框架 | MIPI Camera指令调试笔记
V4L2框架 | MIPI Camera指令调试笔记
6119 2
|
SQL 存储 关系型数据库
【MySQL新手入门系列一】:手把手教你入门MySQL
如果您是一位刚刚开始学习MySQL的新手,本文将为您提供一些实用的入门知识和技巧,帮助您快速上手。 本篇文章将以windows为例,介绍MySQL的基础知识,以及如何安装、卸载、配置和使用它。
4247 0
【MySQL新手入门系列一】:手把手教你入门MySQL
|
关系型数据库 MySQL 数据库
Mysql数据库 8.SQL语言 外键约束
Mysql数据库 8.SQL语言 外键约束
188 0
|
算法 机器学习/深度学习 安全
2017阿里技术年度精选| 免费资料库
2017年,在技术发展的历史上,一定是个特别的一年:柯洁与AlphaGo的惊世大战,无人咖啡店开放体验,AI设计师“鲁班”横空出世、三年投入千亿的达摩院正式成立……
2264 0
2017阿里技术年度精选| 免费资料库
|
8天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!