Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.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++ '';不是类型c++;编译错误_C++_Compiler Errors_G++ - Fatal编程技术网

C++ '';不是类型c++;编译错误

C++ '';不是类型c++;编译错误,c++,compiler-errors,g++,C++,Compiler Errors,G++,我正在为任务编写一个小游戏,它需要使用地图,我已成功地将地图放入2d数组,但现在在任务中进一步工作,我发现我需要在另一个函数中访问数组地图[]。我试图让它工作,但失败了。我在g++中遇到的错误是“error:‘Map’不是一种类型”,如果您能提供任何帮助,我们将不胜感激 我已经搜索过了,但要么我在使用搜索引擎方面很糟糕,要么我找不到与此错误相关的任何内容 const int MapSZ = 10; //In Global int Map[MapSZ][MapSZ]; // Also Global

我正在为任务编写一个小游戏,它需要使用地图,我已成功地将地图放入2d数组,但现在在任务中进一步工作,我发现我需要在另一个函数中访问数组地图[]。我试图让它工作,但失败了。我在g++中遇到的错误是“error:‘Map’不是一种类型”,如果您能提供任何帮助,我们将不胜感激

我已经搜索过了,但要么我在使用搜索引擎方面很糟糕,要么我找不到与此错误相关的任何内容

const int MapSZ = 10; //In Global
int Map[MapSZ][MapSZ]; // Also Global

void GetMap(ifstream&, int); //Getting the map (Proto)

GetMap(fin, Map[MapSZ][MapSZ]); //In the main function.

void GetMap(ifstream& fin, Map[MapSZ][MapSZ]) //Inserting the map into an array
应该是:

void GetMap(ifstream& fin, int Map[MapSZ][MapSZ]) 
                           ^^^^
请注意,
Map
是数组的名称,但您没有提到它的类型

应该是:

void GetMap(ifstream& fin, int Map[MapSZ][MapSZ]) 
                           ^^^^

请注意,
Map
是数组的名称,但您没有提到它的类型

如果
Map[MapSZ][MapSZ]
被定义为全局,正如您的注释所述(即它是在
main.cpp
中定义的,但在主函数之外),则无需将其作为参数传递给
GetMap
。你可以做一些简单的事情,比如

void GetMap(ifstream& fin); //proto

int main(int argc, const char * argv[]) {
    GetMap(fin);
}

void GetMap(ifstream& fin) {
    //some code that uses Map[MapSZ][MapSZ]
}

如果
Map[MapSZ][MapSZ]
被定义为全局,正如您的注释所述(即它是在
main.cpp
中定义的,但在主函数之外),则无需将其作为参数传递给
GetMap
。你可以做一些简单的事情,比如

void GetMap(ifstream& fin); //proto

int main(int argc, const char * argv[]) {
    GetMap(fin);
}

void GetMap(ifstream& fin) {
    //some code that uses Map[MapSZ][MapSZ]
}

GetMap
将与早期的
GetMap
原型不兼容。我不认为这里需要重载。谢谢,我输入了“int”,但现在我得到了一个看起来很奇怪的编译错误“/tmp/cc5xDEOL.o:in function
main”:P1P2.cpp:(.text+0x65):对
GetMap(std::basic\u ifstream&,int)“collect2:ld返回了1个退出状态”@Joey函数调用传递了一个int,不是整个
地图
。正确的声明应该是
void GetMap(ifstream&fin,int-maplement)
,因为函数不知道整个映射。最好从函数定义复制原型,而不是从调用站点复制原型。编辑:等等,你已经有了一个正确的原型。“将映射插入数组”行应该是什么?
map
的类型是一个二维整数数组。@potatosatter该行后面是将数字输入数组的函数-请参见此处(int i=0;i>Map[i][j];}列上循环,
GetMap
将与早期的
GetMap
原型不兼容。我不认为这里需要重载。谢谢,我输入了“int”,但现在我得到了一个看起来很奇怪的编译错误“/tmp/cc5xDEOL.o:in function
main”:P1P2.cpp:(.text+0x65):对
GetMap(std::basic\u ifstream&,int)“collect2:ld返回了1个退出状态”@Joey函数调用传递了一个int,不是整个
地图
。正确的声明应该是
void GetMap(ifstream&fin,int-maplement)
,因为函数不知道整个映射。最好从函数定义复制原型,而不是从调用站点复制原型。编辑:等等,你已经有了一个正确的原型。“将映射插入数组”行应该是什么?
map
的类型是一个二维整数数组。@potatosatter该行后面是将数字输入数组的函数-请参见此处(int i=0;i>Map[i][j];}列上循环。}谢谢,这样就可以排序了。现在觉得自己很愚蠢。。。无论如何,干杯!谢谢,这已经解决了。现在觉得自己很愚蠢。。。无论如何,干杯!