我想在下面的代码中创建一个三维数组,但我得到运行时错误。如何创建一个三维动态数组
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;
编辑:
它是我使用三维阵列必须的。我创建了一个具有相同样式的二维数组,并且希望将其扩展为三个,因为这是我所需要的。但正如你所看到的,我感到困惑。
谢谢博佩尔松
a)在一个类中包装一维数组,并自己做索引 - 数学运算b)使用int向量的向量向量c)使用boost :: multi_array。只是不要做你现在正在做的事情。 – jrok 2012-03-19 17:28:31
任何时候你写'***',这不是一个评论,警钟应该在你脑海中消失。 – 2012-03-19 17:31:19
是的,[三星程序员](http://c2.com/cgi/wiki?ThreeStarProgrammer) – 2012-03-19 17:34:41