为什么我的两个数组map,price,放在主函数里面,编译就出错了啊?

img

img


#include
#include 
using namespace std;
    int map[1001][1001]={0};        //每一个宝藏的价值
    int price[1001][1001]={0};            //已经拿到的宝藏的总价值
int main()
{
    int m, n;            //m行,n列
    while (cin >> m >> n)
    {
        
        for (int i = 1; i <= m; i++)
        {
            for (int j = 1; j <= n; j++)
            {
                cin >> map[i][j];
                price[i][j] = map[i][j] + max(price[i - 1][j], price[i][j - 1]);
            }
        }
        cout << price[m][n] << endl;

    }
    return 0;
}

数组要求的空间太大,局部变量申请不到这么大空间,但全局变量可以。所以必须是全局变量