行中的最后一个数组元素和下一行中具有相同指针的第一个元素

时间:2015-09-29 00:33:52

标签: c++ arrays pointers visual-studio-2013 memory-address

我正在完成一项大学任务,要求我得到一个与数组指针相关的数学方程式,我编写了以下代码来显示所有元素的指针:

Code to the left, output to the right.

在我决定将地址转换为十进制以使我的计算更容易之前,一切顺利,我使用了以下代码行:

size_t D = reinterpret_cast<size_t>(&X);

一旦我做了,不知何故,行中的最后一个元素和下一行中的第一个元素返回相同的地址:

Marked in red

即使我删除了该行并将我的代码恢复到之前的状态,指定的元素仍会返回相同的地址。我认为这可能是一个奇怪的Visual Studio行为,我尝试重新启动它,但问题没有修复。我想知道这是如何发生的以及如何修复它,它没有意义。

1 个答案:

答案 0 :(得分:1)

The size of your array was changed to Arr[5][4]. It won't return an error or warning as, they are all valid pointers to the 'one past the end' element of an array.