2016-11-11 179 views
0

我想給一個數組作爲指向函數的指針,因爲我想從中返回一個數組。調用該函數時會出現問題。我有以下代碼:向量函數返回

void function(unsigned char p[4][4], unsigned char x, unsigned char* arr[4]) { 
    unsigned char result; 
    for (int ii=0;ii<4;ii++) 
    { 
     result= p[ii][1] - p[ii][2] + p[ii][0]*x + p[ii][3]*4; 
     *arr[ii]=result; 
    } 
unsigned char function2(unsigned char p[4][4], unsigned char x, unsigned char y) { 
    unsigned char arr[4]; 

    function(p, y, arr); 
    ret= function3(arr, x); 
    return ret; 
} 

目的是修改矢量arr的價值function,爲了function3使用它,有無關function。所述compilator是說:

不能轉換 '無符號字符*' 到 '無符號字符**' 的參數 '3' 爲「void函數(無符號字符(*)[4],無符號​​的字符,無符號 char **)

任何幫助表示讚賞!

回答

0

我想你可以簡單的通過數組指針(不指針數組):

void function(unsigned char p[4][4], unsigned char x, unsigned char * arr) { 
    unsigned char result; 
    for (int ii = 0; ii < 4; ii++) 
    { 
     result = p[ii][1] - p[ii][2] + p[ii][0] * x + p[ii][3] * 4; 
     arr[ii] = result; 
    } 
} 

我認爲這是最簡單的方法。

+0

完美!有效!很好的答案,謝謝! @Unick – Kortatu