假设我在C中有一个多维矩阵matrix[2][3],其元素如下所示:
1 3 5
2 3 4
Run Code Online (Sandbox Code Playgroud)
我想将矩阵的第二行(作为数组)传递给函数.我是这样做的:
void myFunction(int array[]) {
}
int main() {
int matrix[2][3];
myFunction(matrix[2]);
}
Run Code Online (Sandbox Code Playgroud)
虽然,当我打印元素array[]内部的值时,myFunction看起来都设置为零:
0 0 0
Run Code Online (Sandbox Code Playgroud)
如何正确地将矩阵行的元素传递给函数?
matrix[2]不是代码中的预定义位置.您需要传递matrix[1]才能访问第二行.
顺便说一下,你似乎传递的数组是未初始化的.请在传递给函数之前初始化它.
就像你的情况一样,代码应该是: -
void myFunction(int array[]) {
...// and so on
}
int main() {
int matrix[2][3] = {{1,3,5},{2,3,4}};
myFunction(matrix[1]);
...// and so on
return 0;
}
Run Code Online (Sandbox Code Playgroud)
注意: C中的数组索引始终从0开始.