1

我正在尝试创建一个具有动态内存的 3D 字符数组。我在 main 中创建 char*** 点,然后将其传递给输入,一切正常,直到输入函数返回,我尝试从 main 中重新定位相同的位置。我得到“访问冲突读取位置”。有什么建议么?

void input(char ***a, int f, int n)
{
cin >> f;
cin >> n;
a = new char**[f];

for (int i =0; i <f; ++i)
{
    a[i]= new char*[n];

    for (int j=0; j <n; ++j)
    {
        a[i][j] = new char[n];
    }
}

for (int i =0; i<f; ++i)
{
    for (int j=0; j<n; ++j)
    { 
       for (int k = 0; k <n ;++k)
       {
          a[i][j][k] = '.';
          cout << a[i][j][k];}
       }
    }

    cout <<endl << endl<< a[2][5][5]; //test to see is value is '."
}

int main()
{
    char ***station = 0;
    int floors=0, n=0;
    input(station, floors, n);
    cout << endl << endl << station[2][5][5];
}
4

0 回答 0