Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1700346
  • 博文数量: 174
  • 博客积分: 5493
  • 博客等级: 上校
  • 技术积分: 5802
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-05 15:13
个人简介

炼狱,是为追逐光芒

文章分类

全部博文(174)

文章存档

2017年(1)

2016年(3)

2015年(9)

2014年(5)

2013年(23)

2012年(56)

2011年(45)

2010年(32)

分类: LINUX

2010-10-05 16:25:14

内存分配包括
静态分配:编译时确定内存大小,不一定在编译时分配,比如:局部变量放在栈里.
动态分配:在编译时不知道内存多大,在运行时动态分配。
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之一得到的地址)
阅读(1539) | 评论(0) | 转发(1) |
0

上一篇:标准I/O操作函数

下一篇:ubuntu10.04源

给主人留下些什么吧!~~