码迷,mamicode.com
首页 > 移动开发 > 详细

IOS--Day03---memory allocation 动态内存分配

时间:2014-10-13 17:52:31      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:des   io   os   使用   sp   数据   on   代码   bs   

内存: 分为五个区域

  • 栈区-----------系统分配以及回收内存.函数体内创建的变量存在栈区
  • 堆区------------由用户分配和回收,如果用户忘记回收 可能会导致内存不够用, 程序退出时,堆内存由系统回收
  • 常量区-------------用于存放常量的内存区域
  • 静态区 -------------定义在函数体外面的变量,由系统开辟空间,程序运行过程中一直存在,直至程序退出,由系统回收
  • 代码区----------------存放代码编译结果

---------------------------------------------------------------------------------

malloc函数

void *malloc(unsigned int size);

malloc函数向系统申请分配size个连续的内存空间  但是不会把分配的空间清0

 free();//释放内存

-----------------------------------

 void *calloc ( unsigned n,unsigned size);

分配n个size大小的空间

与malloc不同的是calloc申请的内存空间会初始化成0;

----------------------------------

void *realloc(void *p, unsigned newSize);

按新的长度重新分配内存

这三种都使用free释放

------------------------------------------

内存操作函数

void *memset(void *s, int c, size_t n);

memset (p,0,sizeof(Student));

s开始,长度为n的所有字节赋值为c;

通常用于清楚结构体或者数组数据

void *memcpy(void *dest,const void *source,size_t n);

从source 拷贝 n个字节到dest中 

int memcmp(const void *buf1,const void *buf2,unsigned int count);

以上内存操作函数既可以用于堆内存页可以用于栈内存

 

IOS--Day03---memory allocation 动态内存分配

标签:des   io   os   使用   sp   数据   on   代码   bs   

原文地址:http://www.cnblogs.com/Rachel0829/p/4022403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!