处理从文件中读取整数并将它们放入2D数组的项目。我用一维数组测试了它,但是当我用二维数组进行测试时,我一直得到这个错误"数组下标的无效类型'int [int]'"在我的课堂上叫做#34; Image"在这个功能:
void Image::read(int* arr)
{
//Nested loop that reads the file
for(int i = 0; i < height; i++)
{
for(int k = 0; k < width; k++)
{
inputFile >> arr[i][k]; //Here's where I get the error
}
}
}
这是我的主要功能:
int main()
{
Image test("colorado1.dat"); //File with the integers
test.setWidth(500);
test.setHeight(500);
int array[test.getHeight()][test.getWidth()];
test.read(array);
//Loop to test if the function worked
for(int i = 0; i < 500; i++)
{
for(int k = 0; k < 500; k++)
{
cout << array[i][k] << " ";
}
}
}
答案 0 :(得分:0)
看一下这个函数签名:
void Image::read(int* arr);
在这里,您已经说过arr
的类型是int*
,一个指向整数的指针。结果,当你写
arr[i][k]
C ++说&#34;等一下...... arr
是int *
,所以arr[i]
是int
,你不能将方括号运算符应用于一对int
值。&#34;
要解决此问题,您需要更改处理此功能的参数的方式。您可以传入int**
,它代表指向int
的指针,或者考虑使用std::vector<std::vector<int>>
之类的东西,这样更安全,更容易使用。