1. 程式人生 > >子函式使用二級指標返回二維陣列的值

子函式使用二級指標返回二維陣列的值

使用二級指標返回二維陣列的值
一直以來都不會將函式的結果以陣列的形式返回,今天終於碰巧解決了!
函式功能:功能十分簡單,實現兩個二維陣列的減法,並將結果以陣列的形式返回。

void ** SubArray(void **a, int row, int col, void **b) //返回的資料是一個 二維指標,或者 也可稱為 二維陣列
{
    //********定義二級指標***********
    void **c;
    //*********二級指標初始化  begin************
    int n = row;
    int m = col;
    c = (void
**)malloc(n*sizeof(int *)); //分配n行 for (int i = 0; i<n; i++) { c[i] = (void *)malloc(m*sizeof(int)); //為每行分配m個數據空間 } //*********二級指標初始化 end*************** for (int i = 0; i != row; ++i) { for (int j = 0; j != col; ++j) { *((int *)c + i*col + j) = *((int
*)b + i*col + j) - *((int *)a + i*col + j); } } return c; }

顯示二維陣列:

void dispArray(void **a, int row, int col)
{
    for (int i = 0; i != row; ++i)
    {
        for (int j = 0; j != col; ++j)
            cout << *((int *)a + i*col + j) << " ";
        cout << endl;
    }
    cout
<< endl; }

呼叫:

dispArray((void **)SubArray((void **)a, row, col, (void **)b), row, col);

其中,二維陣列a、b的行數row、列數col 均相同。

row=sizeof(a)/sizeof(a[0]);//行數
col=sizeof(a[0])/sizeof(int);
//列數,其中int為二維陣列a的資料型別。