2

我正在为作业编写一个小游戏,它需要使用地图,我已成功将地图放入二维数组,但现在进一步研究作业,我发现我需要在另一个函数中访问数组 Map[][] . 我试图让它工作但失败了。我用 g++ 得到的错误是“错误:'地图'不是类型”任何帮助将不胜感激。

我已经搜索过,但要么我不擅长使用搜索引擎,要么找不到任何特定于此错误的内容。

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
4

2 回答 2

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

应该:

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

请注意,这Map是数组的名称,但您没有提及它的type

于 2012-05-23T06:56:37.417 回答
1

如果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]
}
于 2012-05-23T08:33:36.003 回答