0

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

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

有谁知道如何提取smallerArray.extractPiece()和而不是获取地址的内容,并且没有,有没有人有任何其他方法来创建二维数组对象?

4

3 回答 3

1
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. xGrid并且yGrid太大而不能用作 的索引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];
    }
  }
}
于 2008-12-27T11:03:38.417 回答
0

如果您创建一个二维数组对象或类(或结构),它可能会使事情变得更容易

class BaxMatrix {
public:
  int m_Data[4][4];
}

通过一些工作,您可以根据需要构建动态结构或使用 STL 结构。数据和对数据的引用是两种不同的动物。在继续前进之前,最好先明确他们在您的思维中的每个角色。

于 2009-01-05T16:50:10.497 回答
0

现在,您的问题似乎有点不明确。您希望从较小的阵列中获得多大的“一块”,以及您想在较大的阵列中的哪个位置插入它?

于 2008-12-27T10:58:39.207 回答