将一个函数中矩阵的内容发送到另一个函数中的矩阵

时间:2009-06-28 22:13:57

标签: c function matrix

如何将一个函数中char矩阵的内容传递给另一个函数中另一个相等维度的矩阵?

3 个答案:

答案 0 :(得分:3)

您可以将矩阵内容复制到memcpy函数中。

/*
* mat: matrix to duplicate.
* rows: rows in mat.
* cols: cols in mat.
*/
void matdup(char mat[][],size_t rows,size_t cols){

    char dupmat[rows][cols];//duplicate matrix in stack.

    memcpy((void*)dupmat,(void*)mat,rows*cols);

    //do stuff with matrix here.
}

有了这个,你可以在matdup函数中使用一个新的矩阵。

答案 1 :(得分:2)

由于您似乎知道矩阵的大小是常量,因此任务就像将双指针(此处为char**)传递给函数一样简单,该函数指的是传递的矩阵。

如果传递矩阵的行/列未知,则需要传递维度,但是,因为C不跟踪内存中数组的大小(它们只不过是具有语法糖的指针)。

答案 2 :(得分:1)

将指针传递给矩阵中的第一个元素和大小。