int(*pt)[3] = new int [3]?

这样动态分配为什么不行啊?
int(*pt)[3] = new int [3];

img


查了好久查不到!正确的应该怎么new啊?
求赐教!

你现在定义的数组,数组每一个元素是一个指向int类型的指针。
我猜测你应该是想定义一个存放int类型的数组,如下

int *p = new int[3];//p默认指向第一个(下标为0)的元素

#include <array>

auto main() -> int
{
    // 普通动态数组
    int *pt1 = new int[3];

    // 二维数组
    using intArr = int[3];
    int(*pt2)[3] = new intArr[1];

    // 二维数组
    int(*pt3)[3] = new int[1][3];

    // 为了不教偏了, 给一个推荐实现
    // 现代 C++ 推荐这么玩
    std::array<int, 3> *pt4 = new std::array<int, 3>[1];

    return 0;
}