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

标签 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 行为,我尝试重新启动它,但问题并未解决。我想知道这是怎么发生的以及如何解决,这没有意义。

最佳答案

您的数组大小已更改为 Arr[5][4]。它不会返回错误或警告,因为它们都是指向数组“结束后的一个”元素的有效指针。

关于c++ - 一行中的最后一个数组元素和下一行中具有相同指针的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32833852/

相关文章:

c - 是否可以使用指向 char (char **pptr_char) 的指针来存储动态数量的动态大小字符串?

c++ - move std::vector 时出现段错误

c++ - 跳过 5 到 17 项 C++ 的乘法

java - 无法在面向对象编程、数组中为函数赋值

php - 在 php 中从 mysql 查询创建二维数组

c++ - 指针变量名返回的值是多少?

c++ - 初始化数组指针

c++ - 在 Xcode 和 Eclipse 中输出 char 数组

c# - 包含数组的结构体的大小

不能和可以更新字符串指针变量