矢量从函数返回

时间:2016-11-11 16:26:25

标签: c++ arrays

我正在尝试将数组作为指向函数的指针,因为我想从中返回一个数组。调用函数时出现问题。我有以下代码:

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无关。编译器说:

  对于参数'3',

无法将'unsigned char *'转换为'unsigned char **'   'void function(unsigned char(*)[4],unsigned char,unsigned   字符**)

感谢任何帮助!

1 个答案:

答案 0 :(得分: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;
    }
}

我认为这是最简单的方法。