我正在尝试运行一个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"
最后.这是什么以及它为什么会发生?
到目前为止,您展示的代码很好.打印的地址似乎不是从代码的那一部分打印出来的.我可以想象两种情况.
您不小心打印myArray [i]或myArray并忘记应用其他索引.当数组值转换为其第一个元素的地址时,它会导致打印一个地址.
你不小心打印cout本身像cout << cout.cout有一个隐式转换为指针类型(它用于检查像是在内的理智状态if(cout) { ... }
),这也会导致打印地址.
这可能是另一种情况.你可以粘贴两个循环后出现的代码吗?
错误不在您发布的代码中.之后你还有另一个cout吗?
0x22 ....看起来像一个内存地址,所以具体来说你可能有一行读取
cout << myArray;
某处.