将int***赋值给int[][][]
Assigning int*** to int[][][]
可能重复:
C 中多维数组指针的工作原理
我需要一个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 val[1][2][3];
int (*ptr)[1][2][3] = &val;
相关文章:
- cin >> int 给定一个字符串将 int 赋值为 0
- 数组类型 int[n][n] 不可赋值,因为表达式必须具有常量值
- 赋值和添加运算符重载(2个表和int的串联)
- 程序无法编译:将 'int (*)[3][3]' 赋值为 'int [9][3][3]' 中的不兼容类型
- 如何修复数组赋值从 ascii 值到 int
- 为什么SDL_QueryTexture不为其 int* 参数赋值?
- 不能为类中的 int 赋值
- 在没有初始化列表的情况下,在c++的headerfile中为const int赋值
- 错误:在 GEANY 中将"int"赋值为"char [1]"时类型不兼容
- 将int***赋值给int[][][]
- C++ int 赋值不起作用
- 如何将int赋值给具有字符串流的字符串
- 当我在C++中将临时int赋值给const引用时会发生什么
- 错误:将"int"赋值为"int[2]"时的类型不兼容
- 将const int赋值给指向int的const指针是非法的
- "无符号长整型"和'unsigned long long int'赋值问题
- 将int[][]赋值给int**
- 如果允许将int赋值给float(反之亦然),是否不类型安全?
- 不能将int赋值给返回类的int成员
- 在while循环中滥用cin进行int赋值