博客
关于我
C/C++动态分配内存
阅读量:400 次
发布时间:2019-03-06

本文共 600 字,大约阅读时间需要 2 分钟。

C:malloc和calloc来分配内存:

 

malloc函数原型

void *malloc(unsigned int size)

首先这是一个void 指针函数返回的是一个指向不定的指针,所以在调用这个函数的时候需要强转化为需要的指针类型。然后再在里面添加所需要开辟的空间大小

 

例子:

1 int * PI = NULL;2 3 PI = (int *)malloc(sizeof(int));

calloc和malloc差不多,区别就是将大小划分了一下

void *calloc(unsigned int num,unsigned int size);

第一个参数表示要分配的个数,第二个参数表示每个个数的内存大小

 

一般推荐使用calloc因为calloc可以将分配好了的初始化为0更加安全

 

删除分配的内存:

free函数来处理

void *free(void *p)

只需要把需要释放的内存放进free中就行了。

 

重新分配内存:realloc()

void *realloc(void *p,unsigned int size);

作用是修改大小size,但是返回的是新分配的存储空间首地址,和原来的不一定相同。且只能通过指针变量引导,一旦指针指向修改,数据和内存就丢失 了。

 

 

C++:

采用new来打包处理

例子:int *a = new int(10);

删除时直接

delete a;就行了

 

转载地址:http://enfkz.baihongyu.com/

你可能感兴趣的文章
Git 配置SSH公钥、私钥
查看>>
在create-react-app创建的项目下允许函数绑定运算符
查看>>
博客园新闻频道开始公开测试
查看>>
评论表聚集索引引起的评论超时问题
查看>>
博客园上海俱乐部4月份活动通知邀请函已经发出!
查看>>
Internet Explorer 10 专题上线
查看>>
云计算之路-阿里云上:0:25~0:40网络存储故障造成网站不能正常访问
查看>>
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
查看>>
上周热点回顾(1.21-1.27)
查看>>
上周热点回顾(6.3-6.9)
查看>>
上周热点回顾(8.12-8.18)
查看>>
【故障公告】升级阿里云 RDS SQL Server 实例故障经过
查看>>
蹒跚来迟:新版博客后台上线公测
查看>>
上周热点回顾(9.16-9.22)
查看>>
上周热点回顾(11.4-11.10)
查看>>
[网站公告]11月26日00:00-04:00阿里云RDS升级
查看>>
[网站公告]又拍云API故障造成图片无法上传(已恢复)
查看>>
上周热点回顾(12.16-12.22)
查看>>
云计算之路-阿里云上:对“黑色30秒”问题的猜想
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了
查看>>