运行错误1(内存不能为读)

sandy1983 2009-08-10 12:54:27
在编程时经常碰到如下现象,让人非常头疼,无从下手:编译时没有错误,一切正常。可是一运行就出错,而且这种错误编译器又不会告诉你错误在哪里,好让你调试排除错误。根本无从下手。请教高手碰到如此问题如何解决?

下面是经常可能碰到的两种运行错误提示:

运行错误
1(内存不能为读) 例如:弹出对话框“0X77007261”指令引用的“0X77007261”内存。该内存不能为“READ”

2(终止 忽略 重试) 运行时出现弹出“终止”“忽略”“重试”对话框

另外还有一种错误就是LINK错误,常见的有LINK2001等。虽然也不提示错误出处,可是稍微要好处理点,有少量信息提示。不过也可能很难找出错地方。也请指点一二
...全文
90 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandy1983 2009-08-14
内存泄漏会导致什么样的后果呢?
回复
BlueEngine 2009-08-11
内存泄露一般不会造成你描述的情形,内存越界,指针错误,内存释放不当等才会。
回复
sandy1983 2009-08-11
这种问题的出现是不是因为---内存泄漏 产生的?
回复
雪影 2009-08-10
1. 内存越界错误,这类错误查找比较麻烦,只能设置断点,慢慢去排除错误。
2.缺少类库的lib文件。在Project Setting中添加,也可通过#import添加缺少的依赖的类库
回复
sandy1983 2009-08-10
[Quote=引用 3 楼 lygfqy 的回复:]
内存不能为读的情况可以通过汇编的代码往上几行来查看调用的函数从而可以初步定位调用出错的地址
[/Quote]这也不失为一个办法,可以具体研究下,还有别的方法吗?

现在好像有查内存溢出工具,有谁有,可以提供下联接的
回复
BlueEngine 2009-08-10
具体问题具体分析吧,泛泛的讲,解决这类问题的帖子一搜一大把
回复
lygfqy 2009-08-10
内存不能为读的情况可以通过汇编的代码往上几行来查看调用的函数从而可以初步定位调用出错的地址
回复
sandy1983 2009-08-10
你意思这是传说中的“内存溢出”?听说现在有很多查关于内存溢出的工具来解决这个问题,是否能有效解决如上问题?

你的第二点没看懂,如果缺少某个LIB的话,编译时就会报错了
回复
发动态
发帖子
硬件/系统
创建于2007-09-28

2590

社区成员

VC/MFC 硬件/系统
申请成为版主
社区公告
暂无公告