c - 如何在 C 中创建一个将二维矩阵作为参数(并对其进行修改)的函数?
问题描述
我正在尝试制作一个函数来计算整数矩阵的转置。该函数采用矩阵的两个维度,即 d1 和 d2,以及矩阵本身,名为 arr,以及一个名为 dest 的矩阵,它将是转置。这是我尝试使用的代码:
void transpose(size_t d1, size_t d2, int arr[d1][d2], int dest[d2][d1])
{
for (size_t i = 0; i < d1; i++)
{
for (size_t j = 0; j < d2; j++)
{
dest[j][i] = arr[i][j];
}
}
}
这是我尝试编译时得到的结果:
Exercicios\source\9.52.c:5:48: error: use of parameter outside function body before ']' token
void transpose(size_t d1, size_t d2, int arr[d1][d2], int dest[d2][d1])
^
Exercicios\source\9.52.c:5:52: error: use of parameter outside function body before ']' token
void transpose(size_t d1, size_t d2, int arr[d1][d2], int dest[d2][d1])
^
Exercicios\source\9.52.c:5:53: error: expected ')' before ',' token
void transpose(size_t d1, size_t d2, int arr[d1][d2], int dest[d2][d1])
~ ^
)
Exercicios\source\9.52.c:5:55: error: expected unqualified-id before 'int'
void transpose(size_t d1, size_t d2, int arr[d1][d2], int dest[d2][d1])
看到这里,可能有人会说我根本不能在另一个参数中使用一个参数的值,这也是我的想法,但是,这个函数似乎可以在在线编译器上工作,并将参数用作其他参数的维度在另一个问题上提出了论点,以及一些文章在这里和那里,所以它必须(有点)正确。即使那样,它在我的编译器(mingw-w64)上也不起作用,所以我希望有人能帮我解决这个问题。
解决方案
推荐阅读
- rspec - 使用 js 时,Rspec 模拟在前块中被忽略:真的吗?
- c# - 带有 'where in' 和 dbParameter 的 OleDbCommand
- sony - 在 Sony a7iii/a7riii/a9 上启用内容传输
- javascript - 存储事件不会为 Office 中的 localStorage 触发
- javascript - 单击元素时 xpath 发生变化
- couchbase - couchbase 查询的索引
- php - Laravel 关系获取用户电子邮件
- python - 我如何创建调用相互中断的函数的热键?
- java - 休息:如何处理数千个相同的请求
- node.js - Angular 源文件在浏览器中可见。如何隐藏?