C语言中动态分配函数

C语言中动态分配函数

malloc函数

  • C 库函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针
  • 头文件为stdlib.h
  • 函数声明如下:
void *malloc(size_t size)
  • size – 内存块的大小,以字节为单位。
  • 使用时通常可以配合sizeof函数来使用,例如
char * res = (char*)malloc(sizeof(char)*len_sum);
  • 如果分配空间失败则会返回NULL,可以在malloc完成之后,进行判断
  • 需要注意的是len_sum是指有多少个这一类型的元素,而在使用res时,因为是元素是从0开始计算,因此res里元素的范围就是0-len_sum-1。此处容易造成越界。

calloc函数

  • 头文件 stdlib.h
  • 函数声明如下:
void *calloc(size_t nitems, size_t size)
  • malloc 和 calloc 之间的不同点是,malloc 不会设置内存为零,而 calloc 会设置分配的内存为零。
  • 第一个参数nitems的类型是无符号整型(size_t),它表示需要动态开辟的元素的个数。
  • 第二个参数的类型是无符号整型(size_t),它表示需要开辟的每个元素的大小(以字节为单位).
  • 使用时通常配合sizeof函数进行使用
char * res = (char*)calloc(len_sum,sizeof(char));

最后不要忘记free掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值