你的位置:首页 > 软件开发 > 操作系统 > IOS 阶段学习第九天笔记(内存管理)

IOS 阶段学习第九天笔记(内存管理)

发布时间:2015-06-28 12:00:02
IOS学习(C语言)知识点整理一、内存管理1)malloc , 用于申请内存; 结构void *malloc(size_t),需要引用头文件<stdlib.h>;在堆里面申请内存,size_t,表示申请空间的大小,单位是字节;如果申请成功,返回这段内存的首地址,申请失 ...

IOS学习(C语言)知识点整理

一、内存管理

1)malloc , 用于申请内存; 结构void *malloc(size_t),需要引用头文件<stdlib.h>;在堆里面申请内存,size_t,表示申请空间的大小,单位是字节;如果申请成功,返回这段内存的首地址,申请失败,返回NULL;需要手动初始化

注意点:

           1、可能会申请失败,所以需要判断返回是否是NULL。

           2、申请的内存需要强制转换为指定的数据类型,例如:(int*)malloc(10*sizeof(int))

           3、分配的内存是未初始化的,需要先清理后使用。

           4、使用完毕需要手动释放,如果没有释放会导致内存泄漏。

           5、什么时候用:>500字节(具体大小视公司情况而定),须要手动申请。

           6、释放之后的内存不可以再使用,如要使用需要再次申请。

           7、如果同时申请两块内存,第一次申请成功,第二次申请失败,一定要记得释放掉第一次成功申请的内存。

实例代码:

 1 #define LEN 10 2 int main(int argc, const char * argv[]) { 3   int *p = NULL; 4   //申请一段空间,放10个int 5   p = (int*)malloc(10*sizeof(int)); 6   if(p==NULL){ 7     printf("malloc failed\n"); 8     return 0;//返回,不能进行下面的操作 9   }10   printf("before clear:");11   for(int i=0;i<LEN;i++){12     printf("%d, ",*(p+i));13   }14   printf("\n after clear:");15   memset(p,0x0,10*sizeof(int));//内存清016   for(int i=0;i<LEN;i++){17     printf("%d=0x%x, ",*(p+i),*(p+i));18  }19  /*数据处理*/20   free(p);//手动释放21   p = NULL;//增强了保险,使p不可以用22   return 0;23 }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:IOS 阶段学习第九天笔记(内存管理)

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。