C++ 2DArray 对象;指针和数组问题

标签 c++ pointers object multidimensional-array

这个问题来自于我的老问题中的一个已解决的问题,它来自: C++ Inserting 2D array Object into another 2D array Object

但也给我带来了新的问题。请阅读链接中的问题和解决方案以了解我的问题。上一个问题的解决方案是使我的数据成员函数成为指向指针的指针,以允许传递到其他数据成员函数。但是在解决这个问题时,第一个数据成员函数 smallerArray.extractPiece() 现在只返回指针的地址而不是那些指针的内容。我需要这些内容才能让我的第二个数据成员函数 largerArray.extractArray(result) 正常工作,因为我尝试运行代码并给出了窗口错误,而不是编译错误。

有没有人知道如何提取 smallerArray.extractPiece() 的内容而不是获取地址,如果没有,有没有人有任何其他方法来创建 2D -数组对象?

最佳答案

void Grid::extractArray( int** arr )
{
  for(int i = 0; i < xGrid ; ++i) {
    for (int j = 0; j < yGrid ; ++j) {
      squares[i][j] = arr[i][j];
    }
  }
}

较小的数组 int**arr 没有 Grid 元素那么多。 xGridyGrid 太大,无法用作 arr[][] 的索引。

您必须将完整的较小数组对象传递给 extractArray() 函数,并将该对象的大小用于复制函数。

void Grid::extractArray( const Piece & piece)
{
  for(int i = 0; i < piece.xGrid ; ++i) {
    for (int j = 0; j < piece.yGrid ; ++j) {
      squares[i][j] = arr[i][j];
    }
  }
}

关于C++ 2DArray 对象;指针和数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394844/

相关文章:

python - 对于 OpenCV,我的 Python 代码可以显示网络摄像头,但我的 C++ 不能

c - 为什么在 C 中不允许指向数组的第一个元素之前的一个?

scala - Scala 中固有层次结构中的对象初始化序列

javascript - 如何循环嵌套数组?

c++ - 有条件地从函数返回对象类型

c++ - 错误 : Missing VtkCommonCore-6. 0.dll

c++ - VS11 代码分析提示?

c++ - 如何确保指针不指向同一个地方

c# - C# 中的非托管句柄,我需要释放还是销毁?

javascript - 如何在javascript中访问多维对象?