免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 846 | 回复: 0
打印 上一主题 下一主题

内存分配函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-25 18:48 |只看该作者 |倒序浏览

                内存分配包括
静态分配:编译时确定内存大小,不一定在编译时分配,比如:局部变量放在栈里.
动态分配:在编译时不足道内存多大,在运行时动态分配。
1.malloc函数
原型:void *malloc(size_t  n)
n是分配内存的大小,返回分配内存块的首地址,分配失败,返回NULL.内存是由OS分配的。
返回类型void *是指经过强制转换可以赋值给任何类型。
2.free函数
原型:void free(void * p)
p是malloc申请的动态内存首地址,是不能改变的,malloc与free成对使用,不能少用,防止出现内存泄露,也不能多用,free之后,p=NULL,可以防止野指针出现。
动态分配内存特点:
A.内存空间大小可以是一个变量,其值在运行时确定。
B.内存空间在运行时分配,在程序结束时回收,内存分配由OS参与完成
C.动态分配的内存空间在未释放之前均可以被引用,保证其生命期.
内存分配函数类似的还有calloc  ,realloc(参数里的*p,一定是malloc,calloc,realloc之一得到的地址)
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/87996/showart_1879393.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP