0

我正在尝试运行一个 c++ 2d 数组(非常简单的文件)并且它可以工作,但是最后会出现一个错误(至少我认为这是一个错误)。

数组的代码是;

int myArray[10][10];
for (int i = 0; i <= 9; ++i){

    for (int t = 0; t <=9; ++t){

        myArray[i][t] = i+t; //This will give each element a value

    }

}

for (int i = 0; i <= 9; ++i){

    for (int t = 0; t <=9; ++t){

        cout << myArray[i][t] << "\n";

    }

这会正确打印数组,但会添加

“0x22fbb0”

最后。这是什么,为什么会发生?

4

2 回答 2

6

到目前为止,您显示的代码很好。打印的地址似乎不是从代码的那部分打印出来的。我可以想象两种情况。

  • 您不小心打印了 myArray[i] 或 myArray 并忘记应用其他索引。当数组值转换为其第一个元素的地址时,它会导致打印一个地址。
  • 你不小心像 cout << cout 一样打印 cout 本身。cout 隐式转换为指针类型(它用于检查类似 in 的健全状态if(cout) { ... }),这也会导致打印地址。

这可能是完全不同的情况。你能粘贴两个循环之后出现的代码吗?

于 2008-12-11T17:39:10.377 回答
5

错误不在您发布的代码中。之后你有另一个 cout 吗?

0x22.... 看起来像一个内存地址,所以特别是你可能有一行读取

cout << myArray;

某处。

于 2008-12-11T17:38:54.433 回答