美文网首页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数组分配内存空间和释放内存空间

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