这个问题来自于我的老问题中的一个已解决的问题,它来自: 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
元素那么多。
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];
}
}
}
关于C++ 2DArray 对象;指针和数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394844/