导航
  • 主页
  • VC综合技术
  • MFC新技术
  • 互联网技术
  • .NET 技术
  • VC/MFC界面
  • VC/MFC 进程
  • VC/MFC 数据库
  • VC++技术资源

VC memory窗口显示为问号(?),什么原因,能详细解释一下吗?

CuTea 2010-07-01 11:10:25
如题,调试过程中有时候VC memory窗口显示为?,这是什么原因,最好能详细说明一下?
...全文
321 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuchengw 2010-12-15
[Quote=引用 10 楼 qiuchengw 的回复:]

引用 8 楼 cutea 的回复:

引用 7 楼 hankcs 的回复:
引用 6 楼 s373785346 的回复:
野指针~
同意 invalid pointer

即使是指针错了,它指向的地址也应该是本进程的地址空间内的,没错吧?只要是在本进程地址空间内这块数据它应该是可以察看的。

通常即使是野指针,对于这样的错误系统是可以检测到的,在系统停下来的时候还可以dump出……
[/Quote]

哦,要么你的数据也是好的,它就是"?"
再者是把指针类型给强制转换了,比如本来是int * ,你把它转化为了 char*
回复
qiuchengw 2010-12-15
[Quote=引用 8 楼 cutea 的回复:]

引用 7 楼 hankcs 的回复:
引用 6 楼 s373785346 的回复:
野指针~
同意 invalid pointer

即使是指针错了,它指向的地址也应该是本进程的地址空间内的,没错吧?只要是在本进程地址空间内这块数据它应该是可以察看的。

通常即使是野指针,对于这样的错误系统是可以检测到的,在系统停下来的时候还可以dump出来相应的数据,而遇到问号的时候是没有机会继……
[/Quote]

既然是野指针,就可以随便指向整个内存的任何地方, 可以是本进程,也可以不是本进程.
调试窗口事实上也类似于你在控制台中输出:printf("%d");..%s....等等.只不过现在把这些输出定向到了调试窗口中,实质上都是从一个内存中取出来数据,根据你的指针类型不同,输入不同格式的数据(整形,字符串...)

你这个问题,要么是野指针,要么你的指针是好的,但是它指向的内存值没有初始化,是垃圾数据.
回复
Endoresu 2010-12-15
我也疑惑这个问号是什么,我最近写的一个程序返回的指针指向这个?的内存单元导致程序运行不正常
是不是这些问号的内存单元是不可访问的
回复
CuTea 2010-07-02
[Quote=引用 7 楼 hankcs 的回复:]
引用 6 楼 s373785346 的回复:
野指针~
同意 invalid pointer
[/Quote]
即使是指针错了,它指向的地址也应该是本进程的地址空间内的,没错吧?只要是在本进程地址空间内这块数据它应该是可以察看的。

通常即使是野指针,对于这样的错误系统是可以检测到的,在系统停下来的时候还可以dump出来相应的数据,而遇到问号的时候是没有机会继续的

为什么显示问号,想不明白
回复
见习学术士 2010-07-01
[Quote=引用 1 楼 xyzhaopeng 的回复:]
应该是这些地址区间不是给你的程序使用的。
[/Quote]
不可见字符
回复
逗比汪星人 2010-07-01
有些是不可读,所以打?
回复
cdsnpeter 2010-07-01
应该是这些地址区间不是给你的程序使用的。
回复
hankcs 2010-07-01
[Quote=引用 6 楼 s373785346 的回复:]
野指针~
[/Quote]同意 invalid pointer
回复
Henry8484 2010-07-01
野指针~
回复
CuTea 2010-07-01
前面没说清楚,在vc调试时应该是不能在memory窗口看其它进程地址的


to wangningyu

不可读是什么意思,察看也不行?
回复
CuTea 2010-07-01
[Quote=引用 3 楼 xiaoc1026 的回复:]
引用 1 楼 xyzhaopeng 的回复:
应该是这些地址区间不是给你的程序使用的。

不可见字符
[/Quote]

非也,如果是不可见字符应该可以看其十六进制代码,但它全部显示为问号。

to xyzhaopeng :
这段内存肯定是在本进程的地址空间的。另外来说如果不在本进程空间,如果去察看会引起vialotion
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……