iOS-Objective-C

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

2017-11-08  本文已影响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()函数,否则会闪退。

上一篇下一篇

猜你喜欢

热点阅读