可能重复:
如何在 C++ 中使用数组?
我在将数组复制到数组时遇到问题。我有一种感觉,这可能是因为使用了指针,但如果我错了,请纠正我。
我的功能如下:
bool sodoku::rowTest(sodoku *arr[9][9])
{
int row = 0;
while(row < 9)
{
for(int j = 0; j < 9; j++)
{
for(int k = 0; k < 9; k++)
{
if(arr[row][j]->number == arr[row][j]->possibleNumbers[k])
{
for(int i = 0; i < 9; i++)
{
arr[row][i]->possibleNumbers[k] = 0;
}
}
for(int g = 0; g < 7; g++)
{
int t = 8;
arr[row][g]->possibleNumbers[k] = arr[row][t]->possibleNumbers[k];
}
cout << "arr row j num : " << arr[row][j]->possibleNumbers[k] << "row: " << row << " column: " << j << endl;
}
}
row++;
}
if(row == 9)
return true;
}
return true;
}
我的小麻烦就在这里:
for(int g = 0; g < 7; g++)
{
arr[row][g]->possibleNumbers[k] = arr[row][8]->possibleNumbers[k];
}
由于某种原因,当我计算每个元素时,不会发生复制。谁能帮助我知道为什么会发生这种情况?我只希望从 arr[row][1]->possibleNumbers[k] 到 arr[row][7]->possibleNumbers[k] 的每个数组都具有与 arr[row][8]->possibleNumbers[k] 相同的值]。如果有帮助,PossibleNumbers 的范围是 0 到 9。
如果有人可以提供帮助,那就太好了。
谢谢。