我正在完成一项大学任务,要求我得到一个与数组指针相关的数学方程式,我编写了以下代码来显示所有元素的指针:
在我决定将地址转换为十进制以使我的计算更容易之前,一切顺利,我使用了以下代码行:
size_t D = reinterpret_cast<size_t>(&X);
一旦我做了,不知何故,行中的最后一个元素和下一行中的第一个元素返回相同的地址:
即使我删除了该行并将我的代码恢复到之前的状态,指定的元素仍会返回相同的地址。我认为这可能是一个奇怪的Visual Studio行为,我尝试重新启动它,但问题没有修复。我想知道这是如何发生的以及如何修复它,它没有意义。
答案 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.