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

在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()函数,否则会闪退。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C语言中内存分配 在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是...
    一生信仰阅读 4,914评论 0 2
  • (JG-2014-08-20)(前半部分经过网上多篇文章对比整理)(后半部分根据ExceptionalCpp、C+...
    JasonGao阅读 10,902评论 2 23
  • 首先我们来科普一下: 什么是堆?说到堆,又忍不住说到了栈!什么是 栈?1、什么是堆:堆是大家共有的空间,分全局堆和...
    Xiho丶阅读 5,007评论 0 1
  • 前言 C语言作为一门应用途广泛、功能强大、使用灵活的面向过程式编程语言。既可用于编写应用软件,又能用于编写系统软件...
    老板娘来盘一血阅读 14,448评论 32 83
  • 十一 芭莎莎看到了一只蝙蝠,立刻给大家来一个“尖叫表演”,只听“啊……”地尖叫声,大家急忙往回看,“原来是蝙蝠啊,...
    廖隽儿阅读 3,056评论 1 3