开发者社区> 问答> 正文

如何将二维数组传入二维指针中?

有个函数void f(int mat,int m,int n) 如何将一个数组,比如说是int a3正确的传进去?如果直接使用f((int)a,3,4)来调用的话,函数里面直接写mati的话会报错。请问应该如何操作?

展开
收起
a123456678 2016-06-06 08:58:43 2907 0
1 条回答
写回答
取消 提交回答
  • 如果f要接收一个二维数组做参数,而且需要数组的长度信息的话,那么原型应该是这样:

    void f(int **array, int m, int n);
    调用的时候:

    int array3;
    f(array, 3, 4);
    这个问题的关键大概在于,int array3这样定义的变量确实是数组类型(int3),而且这个是有长度信息的(用sizeof是可以取到正确的长度的).
    但是当数组作为函数参数的时候,将会退化为一个纯粹的指针,无法区分是否是数组,也无法携带长度信息。

    2019-07-17 19:27:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载