gpt4 book ai didi

c++ - 如何创建三维动态数组

转载 作者:行者123 更新时间:2023-11-28 00:58:53 32 4
gpt4 key购买 nike

我想在下面的代码中创建一个三维数组,但出现运行时错误。

int dim1,dim2,dim3;
std::cout<<"dim one\n";
std::cin>>dim1;
std::cout<<"dim two\n";
std::cin>>dim2;
std::cout<<"dim three\n";
std::cin>>dim3;

int ***three_dim=0;
three_dim=new int**[dim1];
for(int i=0;i<dim1;++i)
three_dim[i]=new int*[dim2];

for(int k=0;k<dim2;++k)
three_dim[k]=new int*[dim3];
for(int k=0;k<dim1;++k)
for(int i=0;i<dim2;++i)
for(int j=0;j<dim3;++j)
three_dim[k][i][j]=0;

编辑:

我必须使用三维数组。我创建了一个具有相同样式的二维数组,并希望将其扩展为三个,因为这正是我所需要的。但是正如你所看到的,我很困惑。

谢谢 Bo Persson

最佳答案

这部分

for(int k=0;k<dim2;++k)
three_dim[k]=new int*[dim3];

有两个问题。一种是分配 int* 而不是 int。另一个更严重的是,它会覆盖上面几行中先前分配的指针。

你可能应该像这样进行分配:

for(int i=0;i<dim1;++i)
{
    three_dim[i]=new int*[dim2];

for(int k=0;k<dim2;++k)
    three_dim[i][k]=new int[dim3];
}

关于c++ - 如何创建三维动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774816/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com