您的位置:首页 > 编程语言 > C语言/C++

Visual Studio C/C++ 连续两个 int 数据所占的内存地址之间相差12?

2012-09-17 23:36 429 查看
在Visual Studio 进行程序调试时发现连续两个整形数据的内存分配很是诡异,地址之间相差了12个字节,如下图:



但在VC++6.0中是相差4个字节呀!经过研究发现是和VS的解决方案配置有关,上述结果是默认采用Debug模式下得到的,通过修改VS的解决方案配置为 Release 模式,再重新运行原来的程序就会发现连续定义的两个int型数据内存还是连续分配的,地址相差4个字节:



并且发现,在Debug模式下面,内存是有大地址向小地址方向进行内存分配(即先定义的int数据的地址比后定义的int 数据地址大);

而在Release模式下面,内存是由小地址向大地址方向进行内存分配(即先定义的int数据的地址比后定义的int 数据地址小)。

这里可能只是从现象上分析了一下,后续如果发现原理机制上东东再继续分析分享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: