假设我在C中有一个多维矩阵matrix[2][3]
,其元素如下所示:
1 3 5 2 3 4
我想将矩阵的第二行(作为数组)传递给函数.我是这样做的:
void myFunction(int array[]) { } int main() { int matrix[2][3]; myFunction(matrix[2]); }
虽然,当我打印元素array[]
内部的值时,myFunction
看起来都设置为零:
0 0 0
如何正确地将矩阵行的元素传递给函数?
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; }
注意: C中的数组索引始终从0开始.