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

发布于 2024-07-25 14:48:44 字数 47 浏览 7 评论 0原文

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

How can I pass the contents of a char matrix in one function to another matrix of equal dimensions in another function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凉墨 2024-08-01 14:48:45

您可以使用 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 函数内部使用一个新矩阵。

You can copy the matrix contents the memcpy function.

/*
* 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.
}

With this, you can have a new matrix to use inside of the matdup function.

豆芽 2024-08-01 14:48:45

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

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

Since you appear to know that the matrices are of constant size, the task is as simple as passing a double pointer (char** here) to the function, which refers to the matrix being passed.

You will need to pass the dimensions if the rows/columns of the passed matrix is unknown, however, since C does not track the size of arrays in memory (they are no more than pointers with syntactic sugar).

爱情眠于流年 2024-08-01 14:48:45

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

Pass the pointer to the first element in the matrix, and the size.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文