将指针返回使用New创建的数组数组

Returning pointer to an array of arrays created using new

本文关键字:数组 创建 New 指针 返回      更新时间:2023-10-16

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

上午,我允许将返回类型作为数组数组的指针。

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

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

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

上午,我允许将返回类型作为数组数组的指针。

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

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