美文网首页iOS-Objective-C
iOS开发中对C数组分配内存空间和释放内存空间

iOS开发中对C数组分配内存空间和释放内存空间

作者: 追沐 | 来源:发表于2017-11-08 14:27 被阅读29次

在iOS开发中,有时候也会用到C语言数组。对于C数组需要分配内存空间,用完后需要及时释放内存空间。

先看一个iOS中使用的C数组:http://www.jianshu.com/p/1962de8a4b44

还是以CLLocationCoordinate2D类型的C数组为例,来创建一个CLLocationCoordinate2D类型的C数组,给其分配一定的内存空间,最后回收内存。

创建并分配内存

首先得知道C数组的长度,只有知道长度了我们才能知道分配多少内存空间,我们用sizeof()来获取某一个类型的数据的数组元素对应的内存空间大小。假设数组长度是count,每个元素的空间大小是sizeof(CLLocationCoordinate2D),那么总工的内存空间大小就是count x sizeof(CLLocationCoordinate2D)。

//创建长度为count的C数组,并分配一定的内存空间
CLLocationCoordinate2D *coords = (CLLocationCoordinate2D *)malloc(count * sizeof(CLLocationCoordinate2D));

回收内存

free(coords);

free()函数可以回收数组内存空间。

注意

如果你没有在malloc下分配一定的内存空间给数组,则不要用free()函数,否则会闪退。

相关文章

  • iOS开发中对C数组分配内存空间和释放内存空间

    在iOS开发中,有时候也会用到C语言数组。对于C数组需要分配内存空间,用完后需要及时释放内存空间。 先看一个iOS...

  • 七、new和delete

    对象动态建⽴立和释放 new 和delete 在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中...

  • JS引擎之内存管理

    内存的生命周期 分配你所需要的内存 使用分配到的内存(读、写) 不需要时将其释放\归还 内存空间 JS内存空间分为...

  • 关于JS的堆和栈的理解

    一、堆(heap)和栈(stack) 栈(stack)会自动分配内存空间,会自动释放。堆(heap)动态分配的内存...

  • 理解js里堆和栈的意义

    一、 堆(heap)和栈(stack) 栈(stack)会自动分配内存空间,会自动释放。堆(heap)动态分配的内...

  • Java内存分配总结

    Java 的内存管理就是对象的分配和释放的处理 1.分配:通过关键字new创建对象分配内存空间,对象存在堆中。2....

  • JS基础篇-基础数据类型

    一、栈(stack)和堆(heap) stack 为自动分配的内存空间,它由系统自动释放;heap 则是动态分配的...

  • JVM内存溢出OOM

    JVM中各个区域内存都是有限的,在内存不足的情况下,继续分配新的内存空间,而不对老的内存空间进行回收释放,测试就会...

  • Java中null、isEmpty、""的区别

    名字区别null未分配内存空间,无值,空指针isEmpty()分配了内存空间,无值""分配了内存空间,有值,值为空...

  • Js堆棧理解

    栈(stack) 自动分配的内存空间,它由系统自动释放; 堆(heap) 动态分配的内存,大小不定也不会自动释放。...

网友评论

    本文标题:iOS开发中对C数组分配内存空间和释放内存空间

    本文链接:https://www.haomeiwen.com/subject/eoaemxtx.html