指针的指针做输入参数代替二维数组

指针的指针做输入参数代替二维数组?

有时在写程序是会碰到定义函数输入参数要一个二维数组,但并不能确定数组内的元素个数时,这种情况可以用指针的指针做输入参数解决问题。

因为不用指针的指针,二维数组做多也只能有一维定义时不给出元素个数 (int a[][3])。

指针的指针做输入参数好处就是,不用在定义时就要知道组内元素个数,可以在调用时输入,这样定义的函数更通用。

下面写一个实现例子:

《指针的指针做输入参数代替二维数组》上有5条评论

  1. int Data[3][3]= { {1,1,1},{1,1,1},{1,1,1} } ;
    Fun((int**)Data,3,3);
    还可以用强制类型转换,这样就不用new数组,
    还有一个重要的问题是,new出来的二维数组不一定是连续的。

  2. 比较简单的做法是 用一级指针 并且外部传入二维大小 函数内部手动计算下标
    比如

    1. 对的,你讲这方法也比较常用,特别是在图像处理访问元素。这样方法的好处是因为一维数组分配时不管是静态还是动态,它在内存中都是连续的,二维数组动态分配就不一定是连续。

评论已关闭。