Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用reinterpret_cast时出现未知错误_C++_Arrays - Fatal编程技术网

C++ 使用reinterpret_cast时出现未知错误

C++ 使用reinterpret_cast时出现未知错误,c++,arrays,C++,Arrays,我有一个二维数组,我要把它重塑成一个新的二维数组。i、 e 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_

我有一个二维数组,我要把它重塑成一个新的二维数组。i、 e

        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);

现在,将整数转换为常量整数或将其转换为3和2也同样有效。但是我需要将它们转换为int,知道如何解决这个问题吗?

首先:在转换中不能使用变量,需要重新编写:

int(*array_pointer)[r][c] = reinterpret_cast<int(*)[r][c]>(array);
int(*数组指针)[r][c]=reinterpret\u cast(数组);
致:

int(*数组指针)[3][2]=重新解释数组类型(数组);

如果你需要使用更灵活或动态的东西,也许考虑使用STD::向量

这是为我编译的。或者通过C9 IDE将二进制解析器设置为?g++4.8.2。C++14应该支持
size\u t
,为什么我们不能在强制转换中使用变量?如果我说const int,它是有效的。是的,但它不是一个“真正的”变量,如果你想更灵活一些,你不能使用它。如果需要r&c的动态值,请使用(例如)std::vector
int(*array_pointer)[r][c] = reinterpret_cast<int(*)[r][c]>(array);
int(*array_pointer)[3][2] = reinterpret_cast<int(*)[3][2]>(array);