如何将一个函数中char矩阵的内容传递给另一个函数中另一个相等维度的矩阵?
答案 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)
将指针传递给矩阵中的第一个元素和大小。