如何在 C++ 中将 int map[60][60] 数组从我的 main.cpp 文件传递​​到我的 findpath.cpp 文件?

How do I pass an int map[60][60] array from my main.cpp file to my findpath.cpp file in c++?

好的,我有一个数组

int map[60][60];

在 int main() 中填充了墙壁和起始位置等。

稍后我调用位于另一个 .cpp 文件中的路径查找算法

string route=findPath(xA, yA, xB, yB);

它将地图上的随机起点和终点传递给 findPath。我遇到的问题是,我真的想将地图生成保存在一个单独的文件中,并最终将其从 main 移出到它自己的 .cpp 中。为了实现这一点,我需要能够将完成的地图传递给 findPath

findPath(xA, yA, xB, yB, map);

但是我完全不知道如何开始这样做,而且我尽最大努力在网上寻求帮助也以失败告终。尽管有很多关于如何执行此操作的教程,但我无法找到适合我的具体情况的教程,也无法让它发挥作用。

我对头文件的最佳猜测如下所示:

#ifndef FINDPATH_H
#define FINDPATH_H

#include <iostream>
#include <iomanip>
#include <queue>
#include <string>
#include <math.h>
#include <ctime>

using namespace std;

string findPath(const int &, const int &, const int &, const int &, int [60][60]);
#endif

我的 findPath 函数声明如下所示

    string findPath(const int & xCoordStart, const int & yCoordStart,
 const int & xCoordEnd, const int & yCoordEnd, int (&map)[60][60])

我真的很难弄清楚如何做到这一点并实施它,请帮忙。

编辑:我在当前代码中遇到的错误:

Error 3 error LNK2019: unresolved external symbol "class std::basic_string,class std::allocator > __cdecl findPath(int const &,int const &,int const &,int const &,int (* const)[60])" (?findPath@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABH000QAY0DM@H@Z) referenced in function _main C:\Users\Cameron\Documents\Visual Studio 2012\Projects\Project2\Project2\main.obj Project2

我很确定我的头文件做错了,因为当我尝试使用 int (&m)[60][60] 格式时出现了这个问题。

在此之前它编译了,但在 运行 时失败了,因为没有实际传递数组的内容。相反,地图是空白的,导致路径查找算法只绘制直线。

以下是将数组从一个函数传递到另一个函数的三种方法:

#include <iostream>

void foo(int (&m)[100][100])
{
   std::cout << m[10][10] << std::endl;
}

void bar(int (*m)[100])
{
   std::cout << m[10][10] << std::endl;
}

void baz(int (m)[][100])
{
   std::cout << m[10][10] << std::endl;
}

int main()
{
   int m [100][100];
   foo(m);
   bar(m);
   baz(m);
   return 0;
}