2d数组错误c ++

时间:2008-12-11 17:30:28

标签: c++ multidimensional-array

我正在尝试运行一个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”

结束。这是什么以及它为什么会发生?

2 个答案:

答案 0 :(得分:6)

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

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

这可能是另一种情况。你能粘贴两个循环后出现的代码吗?

答案 1 :(得分:5)

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

0x22 ....看起来像一个内存地址,所以具体来说你可能有一行读取

cout&lt;&lt; myArray的;

的某个地方。