【问题标题】:C++ multidimensional dynamic arrayC++ 多维动态数组
【发布时间】:2011-02-16 04:44:39
【问题描述】:

假设我有这个动态创建多维数组:

int* *grid = new int*[gridSizeX];

for (int i=0; i<gridSizeX; i++) {
  grid[i] = new int[gridSizeY];
}

现在应该不能访问像 grid[x][y] = 20 这样的元素吗?

【问题讨论】:

标签: c++ pointers arrays dynamic-data


【解决方案1】:

是的,这应该可以正常工作。

但是...您可能需要考虑使用标准容器而不是手动管理内存:

typedef std::vector<int> IntVec;
typedef std::vector<IntVec> IntGrid;
IntGrid grid(gridSizeX, IntVec(gridSizeY));

grid[0][0] = 20;

【讨论】:

    【解决方案2】:

    是的 - 但在 C/C++ 中,它将被布置为 grid[y][x]。

    【讨论】:

    • 对不起 - 我的意思是它将在内存中以网格 [y] [x] 的形式排列。并同意 gf - 在 C++ 中,您可能想要使用标准容器,然后您可以检查它们的 .size() 并避免任何失误:)
    猜你喜欢
    • 2018-05-16
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    相关资源
    最近更新 更多