我有一个二维数组,我将重塑为一个新的二维数组。即,
int array[3][2];
int r = 3;
int c = 2;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++) {
array[i][j] = 1;
}
}
int(*array_pointer)[r][c] = reinterpret_cast<int(*)[r][c]>(array);
程序并不完全像这样,但它是主要的。出于某种原因,当我传入ints r和c时,我收到此错误:
cannot initialize a variable of type 'int (*)[r][c]' with an rvalue of type 'int (*)[r][c]'
现在将整数形成为常量或仅将其更改为3和2也可以。但我需要将它们作为整体进行投标,任何想法如何解决这个问题?
答案 0 :(得分:3)
嗯,首先:你不能在转换中使用变量,你需要重写:
int(*array_pointer)[r][c] = reinterpret_cast<int(*)[r][c]>(array);
为:
int(*array_pointer)[3][2] = reinterpret_cast<int(*)[3][2]>(array);
如果您需要使用更灵活或更动态的东西,可以考虑使用std :: vector