动态内存开辟

目录

序言

 malloc

声明

参数

返回值

使用

free

声明

参数

使用

calloc

声明

参数

使用

realloc

声明

介绍 

参数

返回值


序言

 malloc

声明

void* malloc (size_t size)

参数

size  --- 要开辟的空间大小(单位为字节) 

返回值

(1)开辟成功,返回指向这块儿空间的无类型指针。

(2)若开辟的空间太大,堆区剩余空间无法提供这么大空间,那么空间开辟失败,返回NULL。

使用

int*a;
a=(int*)malloc(10);

  (1)malloc返回类型为无类型,使用时需要强制类型转换。

(2)常与free配套使用。

free

声明

void free (void*memblock)

参数

memblock---指向要释放空间的指针

使用

int main()
{
   int *P;
   p=(int*)malloc(10);
   free(p);
   p=NULL;
}

 (1)当在堆区申请的动态空间不在使用时,就需要将空间归还给机器,这时候我们就可以借助free函数。

(2)当将p所指向的空间释放后,p就指向一块儿非法空间,这时候就需要,将p指针置为空指针。

calloc

声明

void *calloc(size_t num,size_t size)

参数

num---要开辟的元素个数

size---每个元素占的字节数

返回值

与malloc相同

使用

 (1)会将开辟的空间全部初始化为0;

(2)其余用法与malloc相同。

realloc

声明

void*realloc(void*memblock,size_t size)

介绍 

realloc用来调整动态开辟内存空间的大小,让动态内存开辟变得更加灵活。

参数

memblock---指向要扩增的空间

size---要扩增的大小

返回值

(1)若原先空间后面有足够内存空间,则realloc直接在他的后面追加空间,返回指向这块儿空间的指针。

(2)若原先空间不够大,realloc则会重新开辟一块儿新的空间,释放原先的空间,返回新空间的地址。

(3)若开辟空间太大,则返回空指针,且原先那块空间不会被释放。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值