gpt4 book ai didi

C++将二维数组对象插入另一个二维数组对象

转载 作者:行者123 更新时间:2023-11-28 04:01:13 24 4
gpt4 key购买 nike

在使用 Dev C++ 时,我试图将一个较小的二维数组对象插入到一个较大的二维数组对象中。在尝试实现这一目标时,我遇到了不知道如何解决的编译器错误。

我尝试通过返回数组名称来插入较小的对象。然后我尝试用较小数组的值更改大数组中的值。

有两行代码我遇到了问题:

int result = smallerArray.extractPiece();
largerArray.extractArray(result);

在这两行代码中:

int Piece::extractPiece()
{
return **pieceArray;
}

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];                 }    }}

The two of the problems is that "int result" will not hold smallerArray.extractPiece(),and if i just put "smallerArray.extractPiece()" in largerArray.extractArray(), i still get problems. I attempted to make "int result" a pointer pointer, as "int** result", i still have the same errors.

These are the errors that i get when i try to compile in Dev C++:

In function `int main()';
invalid conversion from `int' to `int**'
initlizing argument 1 of 'void Grid::extractArray(int**)'
[Build Error] [grid test.o] Error 1

有人知道怎么回事吗?

最佳答案

正是这一堆代码:

int result = smallerArray.extractPiece();
largerArray.extractArray(result);
// ...
int Piece::extractPiece() {
return **pieceArray;
}

尝试将一个 int 传递给 extractArray,它需要一个指向指针的指针,推测是您的动态数组,而不是一个 int。尝试将其更改为

int **result = smallerArray.extractPiece();
largerArray.extractArray(result);
// ...
int ** Piece::extractPiece() {
return pieceArray;
}

仅将结果更改为指向指针的指针是行不通的。您当然还必须更改 extractPiece 返回的内容(从 int 更改为 int**)

关于C++将二维数组对象插入另一个二维数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com