动态内存分配

1.malloc

void *malloc(size_t size)
malloc的参数就是要分配的字节数,如果内存池中可用的内存满足这个条件,malloc就返回一个指向被分配的内存块起始位置指针。

malloc分配的是一块连续的内存,如果内存池是空的,或者它的内存无法满足要求,malloc就返回一个NULL指针。因此,对malloc返回值就行NULL检查是必要的。

2.calloc

void *calloc(size_t num_elements,size_t element_size)

calloc和malloc一样,它分配num_elements*element_size个字节的内存,和malloc不同的地方是,calloc会把这块内存初始化为0.

3.realloc

void *realloc(void *ptr,size_t new_size)

realloc用于修改一个原先已经分配的内存块大小,使用这个函数可以使一块内存块扩大或者缩小。第一个参数是指向内存块的指针,第二个参数是修改后的内存大小。
如果原先的内存块无法满足改变大小的要求,realloc将分配另一块正确大小的内存,并把原先的内容复制过去,。因此,在使用realloc之后,最好不要使用指向旧内存的指针,而是使用realloc返回的指针。

4.free

void free(void *ptr)
free的参数要么是NULL,要么是malloc、calloc或realloc返回的值。
free一个NULL不会产生任何效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值