iOS,object-c传参c语言的二维数组
有那么一瞬间,懒得用NSArray,NSNumber,NSValue等一大堆蛋疼的转换,所以就定义了一个C的二维数组,反正OC支持C混编,可是蛋疼往往是传递的,这里不疼了,哪里就要疼,想把一个c的二维数组当成参数传递给另一个函数怎么办?各种尝试,最后想了一个办法,给大家分享下,不一定是最好的,大家有好的欢迎交流,废话不多说,上代码。
int dataArray[][] ={
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , }
    };
    //不是不允许传么,nsdata总可以吧,反正本质都是二进制,转过去呗
    NSData *data = [NSData dataWithBytes:dataArray length:sizeof(int) *  * ];
    //下面提供了两种转换回来的方式,为什么提供两种,自己体会吧,第二种记得使用完了Free()掉,不然…………
    int dataArray2[][];
    [data getBytes:dataArray2 length:sizeof(int) *  * ];
    int * dataArray3 = malloc(sizeof(int) *  * );
    [data getBytes:dataArray3 length:sizeof(int) *  * ];
    for (int i = ; i < ; i++) {
        for (int j = ; j < ; j++) {
            NSLog(@"%d", *(dataArray3 +  * i + j));
        }
    }
   free(dataArray3);
16年9月8日更新:
其实简单的是直接传递指针,数组的本质是一个连续的地址+一个指针,所以你可以这样
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    int dataArray[][] ={
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , },
        {, , , , , , , }
    };
    [self test:dataArray];
}
- (void)test:(int *)data
{
    for (int i = ; i < ; i++) {
        for (int j = ; j < ; j++) {
            NSLog(@"%d", *(data +  * i + j));
        }
    }
}
iOS,object-c传参c语言的二维数组的更多相关文章
- C语言中将二维数组作为函数参数来传递
		
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include <stdio.h> void func(int n, char ...
 - 【C语言】二维数组做形参
		
二维数组有两种形式: ①在栈上: int a[4][4] = {...}; ②在堆堆上: int ** a = new int *[4]; for ...
 - C语言之二维数组与指针
		
二维数组: ][]; 二维数组实质上也就是一维数组,a[2][3]可看做一个2个元素的一维数组,这2个元素又是另一个数组,在内存中,它的排布如下: #include "stdio.h&quo ...
 - C语言传递二维数组
		
方法一, 形参给出第二维的长度. 例如: #include <stdio.h> ] ) { int i; ; i < n; i++) printf("/nstr[%d] = ...
 - C语言之二维数组
		
二维数组 还是一个数组,只不过数组中得每一个元素又是一个数组 1). 声明语法 类型 数组名[行][列]; 例: int nums[2][3];//2行3列的二维数组,保存的数据类型是int类型 c ...
 - C语言 字符二维数组(多个字符串)探讨 求解
		
什么是二维字符数组? 二维字符数组中为什么定义字符串是一行一个? “hello world”在C语言中代表什么? 为什么只能在定义时才能写成char a[10]="jvssj" ...
 - 计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。
		
//函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出. //重难点:形参与实参之间,是否进行了 ...
 - C语言基础:二维数组                                                    分类:            iOS学习  c语言基础             2015-06-10 21:42    16人阅读    评论(0)    收藏
		
二维数组和一位数组类似. 定义: 数据类型 数组名[行][列]={{ },{ }....}; 定义时,一维(行)的长度可以省略,但是二维(列)的长度不可以省略.但是访问时,一定使用双下标. 二维数组的 ...
 - C语言回顾-二维数组
		
1.二维数组:是一个特殊的一维数组 完全初始化: 1)int a[2][3]={{1,2,3},{2,3,4}}; 2)连续赋值int a[2][3]={1,2,3,2,3,4}; 3)可以省略第一维 ...
 
随机推荐
- Android_Service
			
xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...
 - virtualization-vs-containerization
			
http://containerz.blogspot.com/2015/03/virtualization-vs-containerization.html Virtualization vs. Co ...
 - Eclipse内存溢出问题
			
我们经常遇到eclipse内存溢出问题,实际上只需要修改eclipse程序目录下的eclipse.ini文件, -Xms40m -Xmx1000m -XX:MaxPermSize=256m
 - 《转》手把手教你使用Git
			
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不 需要联网了,因为版本都是在自己的电脑上.既然每个人的电脑都有一个完整的版本库,那多个人如何 ...
 - 实现一个脚本语言Raven(一)
			
之前实现了Raven语言的0.1版,仅仅支持表达式处理与控制语句,由于不支持数组.函数.类,甚至都不是图灵完全的语言. 现在参考vczh的博客打算重新写一遍Raven语言.陈祖不愧是神啊,高中就写出支 ...
 - How to: cgminer (Bitcoin, Litecoin etc.) + AMD Radeon driver install on CentOS
			
UPDATE 7/7/13: If you want to use Catalyst drivers version 12.8 you will find that X won’t start (er ...
 - magento 产品列表排序、分页功能
			
我们以 catalog_category_layered 控制器为例说明 在catalog.xml 找到catalog_category_layered配置段 <catalog_category ...
 - NET环境下的未处理异常(unhandled exception)的解决方案
			
NET环境下的未处理异常(unhandled exception )的解决方案 .Net 框架提供了非常强大的异常处理机制,同时对一些非托管代码很难控制的系统问题比如指针越界,内存泄漏等提供了很好的解 ...
 - 淘宝开源Web服务器Tengine安装教程
			
简介Tengine是由淘宝核心系统部基于Nginx开发的Web服务器,它在Nginx的基础上,针对大访问量网站的需求,添加了很多功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,淘宝商 ...
 - html-----016---HTTP 状态消息
			
HTTP 状态消息 当浏览器从 web 服务器请求服务时,可能会发生错误. 从而有可能会返回下面的一系列状态消息: 1xx: 信息 消息: 描述: 100 Continue 服务器仅接收到部分请求,但 ...