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