C++ c++;堆指针奇怪的东西?

C++ c++;堆指针奇怪的东西?,c++,pointers,C++,Pointers,当我这么做的时候 我假设这两个指针在我的计算机内存中彼此相邻(它们相隔4个字节),因此理论上这两个指针应该相差4,但当我显示指针时,它显示如下: 这是一个2的差,这意味着int有2个字节长??我的逻辑错了吗?不,这是32个字节的差异,而不是两个字节的差异。十六进制的差异为0x20,十进制的差异为32 此外,您甚至不能保证对象将在内存中连续分配 换句话说,这些内存地址完全没有任何意义。撇开对齐不谈,它们之间的差异实际上是如何的2?它们之间的差异为0x20,或者十进制为32。因此,两者之间有足够的“

当我这么做的时候

我假设这两个指针在我的计算机内存中彼此相邻(它们相隔4个字节),因此理论上这两个指针应该相差4,但当我显示指针时,它显示如下:


这是一个2的差,这意味着int有2个字节长??我的逻辑错了吗?

不,这是32个字节的差异,而不是两个字节的差异。十六进制的差异为
0x20
,十进制的差异为32

此外,您甚至不能保证对象将在内存中连续分配


换句话说,这些内存地址完全没有任何意义。

撇开对齐不谈,它们之间的差异实际上是如何的
2
?它们之间的差异为0x20,或者十进制为32。因此,两者之间有足够的“空间”。
   int* pointer = new int;
   int* pointer2 = new int;
0x6000227e0
0x600022800