2016-11-11 184 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