【发布时间】:2012-08-02 08:17:02
【问题描述】:
我需要一个int*** 来指向int[][][] 的值,但是当我遍历行、列和层并将ptr[r][c][l] 分配给val[r][c][l] 时,我遇到了分段错误。
谁能告诉我如何将int*** 分配给int[][][]?
这是我的代码:
int row=2;
int col=3;
int layer=4;
int arr[2][3][4] = {{{1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} },{ {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4} } };
char _mode = 'h';
int*** ptr ;
for (int r=0;r<row;r++)
{
for (int c=0;c<col;c++)
{
for (int l=0;l<layer;l++)
{
ptr[row][col][layer] = arr[row][col][layer];
}
}
}
cout <<findExtreme(ptr, row, col, layer, _mode)<<endl;
这是被调用的函数
int findExtreme(int*** arr,int row,int col,int layer, char _mode)
{
int val = 0;
for (int r=0;r<row;r++)
{
for (int c=0;c<col;c++)
{
for (int l=0;l<layer;l++)
{
if (_mode == 'h')
if (arr[r][c][l] > val)
val = arr[r][c][l];
if (_mode == 'l')
if (arr[r][c][l] < val)
val = arr[r][c][l];
}
}
}
return val;
}
【问题讨论】:
-
如果您发布您拥有的代码,别人会更容易发现问题。
-
您的
int[][][]大小合适吗? -
int[][][]是什么?数组 ?数组只有第一维可以为空 -
哦,又是一个三星级程序员。
-
你的
int ***是一个交错数组,int [][][]是一个多维数组,你需要保证它们的大小相同
标签: c++