C++ “是什么意思?”;错误:从';int';至';国际(*)[8]';[-FPERMISSION]“是否允许?”;? #包括 使用名称空间std; 枚举{行=7,列=8}; 无效显示(整数矩阵[][列],整数,整数); int main(){ int水平=0; int垂直=5; 国际金币[行][列]={ {5, 1, 0, 4, 1, 1, 2, 0}, {0, 3, 2, 1, 0, 3, 0, 1}, {4, 3, 0, 6, 5, 0, 1, 0}, {3, 1, 0, 3, 4, 0, 1, 3}, {0, 5, 2, 0, 1, 1, 5, 1}, {2, 1, 6, 1, 6, 0, 2, 1}, {0, 0, 4, 3, 2, 3, 0, 2} }; 展示(金币[行][列],1,1); 返回0; } 无效显示(整数矩阵[][列],整数x,整数y){ 如果(y>=列) cout
传入参数的方式错误。传入不带括号的数组名称标识符:C++ “是什么意思?”;错误:从';int';至';国际(*)[8]';[-FPERMISSION]“是否允许?”;? #包括 使用名称空间std; 枚举{行=7,列=8}; 无效显示(整数矩阵[][列],整数,整数); int main(){ int水平=0; int垂直=5; 国际金币[行][列]={ {5, 1, 0, 4, 1, 1, 2, 0}, {0, 3, 2, 1, 0, 3, 0, 1}, {4, 3, 0, 6, 5, 0, 1, 0}, {3, 1, 0, 3, 4, 0, 1, 3}, {0, 5, 2, 0, 1, 1, 5, 1}, {2, 1, 6, 1, 6, 0, 2, 1}, {0, 0, 4, 3, 2, 3, 0, 2} }; 展示(金币[行][列],1,1); 返回0; } 无效显示(整数矩阵[][列],整数x,整数y){ 如果(y>=列) cout,c++,compiler-errors,C++,Compiler Errors,传入参数的方式错误。传入不带括号的数组名称标识符: #include <iostream> using namespace std; enum {ROW = 7, COLUMN = 8}; void show(int matrix[][COLUMN], int, int); int main (){ int horizontal = 0; int vertical = 5; int goldCoin[ROW][COLUMN] = {
#include <iostream>
using namespace std;
enum {ROW = 7, COLUMN = 8};
void show(int matrix[][COLUMN], int, int);
int main (){
int horizontal = 0;
int vertical = 5;
int goldCoin[ROW][COLUMN] = {
{5, 1, 0, 4, 1, 1, 2, 0},
{0, 3, 2, 1, 0, 3, 0, 1},
{4, 3, 0, 6, 5, 0, 1, 0},
{3, 1, 0, 3, 4, 0, 1, 3},
{0, 5, 2, 0, 1, 1, 5, 1},
{2, 1, 6, 1, 6, 0, 2, 1},
{0, 0, 4, 3, 2, 3, 0, 2}
};
show(goldCoin[ROW][COLUMN], 1, 1);
return 0;
}
void show(int matrix[][COLUMN], int x, int y){
if(y >= COLUMN)
cout << "[error: column index is beyond array limit]" << endl;
else
cout << "[" << matrix[x][y] << "]" << endl;
}
表达式
goldCoin[ROW][COLUMN]
表示2D数组中类型为int
的单个值。因此,您传递的是int
值,而不是函数所期望的int(*)[]
值。在这种情况下,这实际上是读取越界,因为没有坐标为[7]的元素[8]
用金币[7][8]
表示,因为数组是零索引的。
仅在功能声明/定义中,签名为:
show(goldCoin, 1, 1);
不要混淆两者。传入参数的方式错误。传入不带括号的数组名称标识符:
#include <iostream>
using namespace std;
enum {ROW = 7, COLUMN = 8};
void show(int matrix[][COLUMN], int, int);
int main (){
int horizontal = 0;
int vertical = 5;
int goldCoin[ROW][COLUMN] = {
{5, 1, 0, 4, 1, 1, 2, 0},
{0, 3, 2, 1, 0, 3, 0, 1},
{4, 3, 0, 6, 5, 0, 1, 0},
{3, 1, 0, 3, 4, 0, 1, 3},
{0, 5, 2, 0, 1, 1, 5, 1},
{2, 1, 6, 1, 6, 0, 2, 1},
{0, 0, 4, 3, 2, 3, 0, 2}
};
show(goldCoin[ROW][COLUMN], 1, 1);
return 0;
}
void show(int matrix[][COLUMN], int x, int y){
if(y >= COLUMN)
cout << "[error: column index is beyond array limit]" << endl;
else
cout << "[" << matrix[x][y] << "]" << endl;
}
表达式
goldCoin[ROW][COLUMN]
表示2D数组中类型为int
的单个值。因此,您传递的是int
值,而不是函数所期望的int(*)[]
值。在这种情况下,这实际上是读取越界,因为没有坐标为[7]的元素[8]
用金币[7][8]
表示,因为数组是零索引的。
仅在功能声明/定义中,签名为:
show(goldCoin, 1, 1);
不要混淆两者。在调用show(goldCoin[ROW][COLUMN],1,1);
时,您传递的是int
作为第一个参数,而不是您可能希望传递的2D数组
我相信您是想做show(goldCoin,1,1);
。在调用show(goldCoin[ROW][COLUMN],1,1);
时,您传递的是int
作为第一个参数,而不是您可能想要的二维数组
我相信你的意思是做
show(goldCoin,1,1);
。goldCoin[ROW][COLUMN]
指的是一个int
(除了它访问数组超出范围之外),函数需要一个二维数组-有什么不清楚的吗?show
接受int[][][/code>但是当你调用goldCoin[ROW]时[COLUMN]
您正在索引生成单个int
的数组。我猜您的意思是show(goldCoin,1,1)
Thank's CoryKramer。我不知道这一点。作为补充说明,goldCoin[ROW][COLUMN]
表达式的读数超出了范围。goldCoin[ROW][COLUMN]
指的是单个int
(除了访问超出边界的数组外)并且函数需要一个二维数组-什么不清楚?show
接受一个int[][]
但是当您调用goldCoin[ROW][COLUMN]
时,您正在对数组进行索引,该数组生成一个int
。我假设您的意思是show(goldCoin,1,1)
Thank's CoryKramer。我不知道。作为旁注,goldCoin[ROW][COLUMN]
表达式的读数超出了范围。