返回指向使用new创建的数组的数组的指针

时间:2019-07-02 22:00:03

标签: c++

我使用char (*H)[N] = new char[M][N];创建了一个数组数组 我想将此指针返回到我的主要功能。我的问题是在这种情况下函数返回类型应该是什么?我可以使用返回类型作为指向数组数组的指针吗?

2 个答案:

答案 0 :(得分:4)

  

我允许使用返回类型作为指向数组数组的指针。

是的,这将是您特定情况的语法:

char (*get_array())[N] {
  return H;
}

但是您确实应该考虑使用std::unique_ptr<char[N]>std::array<std::array<char, N>, M>

答案 1 :(得分:2)

  

我允许使用返回类型作为指向数组数组的指针。

是的。一种方法是定义一个类型别名并将其用作返回类型。

using MyArrayPointer = char (*)[N];

MyArrayPointer foo()
{
   auto ptr = new char[M][N];
   return ptr;
}