首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

编译器watch异常。显示的值和内存中不一样!且实际给变量赋值的话是内存中的值

2012-01-01 
求教:编译器watch错误。显示的值和内存中不一样!且实际给变量赋值的话是内存中的值,比如BYTE* buffer 中存

求教:编译器watch错误。显示的值和内存中不一样!且实际给变量赋值的话是内存中的值,
比如

BYTE* buffer 中存储了1000字节的数。buffer是首地址

然后BYTE p = buffer[100] ; 结果是没错的,比如说是0x0a;
但是如果将buffer[100]拷贝到watch栏中,会发现显示的是0xff什么的。
而且通过内存观察内存中的数据也是0x0a

我具体的试验了一下,发现前8个字节都是正确的,到第九,十个字节出现了 0x00,0xff,然后第十一个字节本该是0x02,结果编译器显示成了0xff,之后就都是错的了。

强调一下,内存中数据和实际中取值赋给变量的数据是一致的,而且也和源数据一致。
就是编译器watch显示的值很混乱。

已经遇到过两次了,求解!!

[解决办法]
恩,要不你定义一个char *p=&buffer[108]打印出p的值(注意是p的值),以此类推,得到
p=&buffer[109]
p=&buffer[110]
把你认为不应该出错的地方的地址打出来,看他们是不是连续的

热点排行