我在做一个大学作业,要求我得到一个与数组指针相关的数学方程式,我写了下面的代码来显示所有元素的指针:
一切都很顺利,直到我决定将地址转换为十进制以使我的计算更容易,我使用了以下代码行:
size_t D = reinterpret_cast<size_t>(&X);
一旦我这样做了,一行中的最后一个元素和下一行中的第一个元素以某种方式返回了相同的地址:
即使在我删除该行并将我的代码恢复到它以前的状态之后,指定的元素仍然返回相同的地址。我认为这可能是一种奇怪的 Visual Studio 行为,我尝试重新启动它,但问题并未解决。我想知道这是怎么发生的以及如何解决,这没有意义。
最佳答案
您的数组大小已更改为 Arr[5][4]
。它不会返回错误或警告,因为它们都是指向数组“结束后的一个”元素的有效指针。
关于c++ - 一行中的最后一个数组元素和下一行中具有相同指针的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32833852/