Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译错误-无效类型';字符[int]';数组下标_C++_Multidimensional Array_Compiler Errors - Fatal编程技术网

C++ 编译错误-无效类型';字符[int]';数组下标

C++ 编译错误-无效类型';字符[int]';数组下标,c++,multidimensional-array,compiler-errors,C++,Multidimensional Array,Compiler Errors,我正在做一个做矩阵运算的程序。幸运的是,代码逻辑并没有给我带来错误 我使用以下代码输出存储在二维数组中的矩阵: void ouputMatrix(char arr[], int matrixRows, int matrixColumns) { for (int a=0; a<matrixRows; a++) { for (int i=0; i<matrixColumns; i++) { cout << arr[a][i] << " "

我正在做一个做矩阵运算的程序。幸运的是,代码逻辑并没有给我带来错误

我使用以下代码输出存储在二维数组中的矩阵:

void ouputMatrix(char arr[], int matrixRows, int matrixColumns) {

for (int a=0; a<matrixRows; a++) {
    for (int i=0; i<matrixColumns; i++) {
        cout << arr[a][i] << " ";
    }
    cout << endl;   
}
cout << endl;
}
void输出矩阵(字符arr[],整数矩阵行,整数矩阵列){

对于(int a=0;a问题在于,我试图将多维数组传递到函数中,但使用了与一维数组相同的语法。由于数组的大小为100(根据我的问题,这是您无法知道的,抱歉…),传递它的正确方法是:

void ouputMatrix(char arr[][100], int matrixRows, int matrixColumns);

如果你想传递一个1-D数组来实现这样的功能,那么你所做的就是完美的,但是如果你想传递2-D数组,那么你需要传递带有有效语法的数组,而不仅仅是1-D数组

i、 e.
返回类型函数名称(数据类型arrayName[100],int size)

在这种情况下,您也可以将下标“[]”保留为空,仅适用于一维数组

但对于2-D阵列,它将是

返回类型函数名称(数据类型arrayName[100][100],int rowSize,int colSize)

但是,您也可以在此处将下标“[]”保留为空,但只有第1个[]和第2个必须包含一些值。 实际上,在第二个下标中传递什么值并不重要,但必须有一些值,只需传递一个二维数组不会超过的值即可

对于数组的进一步维度,语法将继续这样进行。
希望这对你有用。

arr[a]
是一个
char
。你不能在
char
上执行
[i]
。我想你是想传递一个二维数组而不是
char-arr[]
Ahh,这可能是我的问题。一旦我弄明白了正确的语法,我会发布一个答案。如果您发布定义和初始化矩阵的位置,这会有所帮助