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