我将矩阵传递给文本文件
代码:
In function 'main':
error: expected expression before 'int'
guardarMatriz(int matriz[3][3]);
错误消息;
{{1}}
答案 0 :(得分:1)
您的代码中存在两个问题。首先,您没有正确初始化二维数组。它应该是这样的:
int matriz[3][3]={{1,2,3},{4,5,6},{7,8,9}};
第二,你没有将类型名称传递给函数调用来声明你的变量,所以它应该是这样的:
int matriz[3][3];
llenarMatriz();
guardarMatriz(matriz);
答案 1 :(得分:0)
guardarMatriz(int matriz[3][3]);
将参数传递给函数时,不要包含类型和尺寸。
此外,当您调用函数返回某些内容时,您应该使用正确的类型(int
无法返回int
的2D数组),并且您必须将返回值存储在某处。
在这种情况下,您可以返回复合文字:
void *llenarMatriz(void)
{
return (int [][3]){{1,2,3},{4,5,6},{7,8,9}};
}
和main
:
int main(void) /* void is the correct argument for `main` */
{
int (*matriz)[3] = llenarMatriz(); /* A pointer to an array of int 3 */
guardarMatriz(matriz);
system("pause");
return 0;
}
如果你不想在main
中声明数组,你可以使用第一个函数的结果作为第二个函数的参数:
guardarMatriz(llenarMatriz());
或者您可以直接传递复合文字:
guardarMatriz((int [][3]){{1,2,3},{4,5,6},{7,8,9}});