C++ 执行go(F5)与执行execute program(ctrl+F5)有什么区别?(从内存方面考虑)

执行F5是程序能够运行,运行结束后有以下信息Loaded'ntdll.dll',nomatchingsymbolicinformationfound.Loaded'C:\... 执行F5是程序能够运行,运行结束后有以下信息Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
The thread 0xDC8 has exited with code 350 (0x15E).

The program 'F:\shapeok\Debug\shapeok.exe' has exited with code 350
(0x15E).
******但是如果ctrl+F5,程序中640次的一个大循环执行8次就出现“0x00426dcb"指令引用的"0x00000000"的内存不能为read的错,而是程序终止。
???为什么F5能运行,ctrl+F5就不行了呢?如何查错?我检查了所有的指针没发现错误。求救啊!!!!
展开
 我来答
yvhpfiipfi
2010-04-16 · TA获得超过2912个赞
知道小有建树答主
回答量:880
采纳率:50%
帮助的人:693万
展开全部
楼主你好!

一般不会出现这些错误的,可能是程序的代码有逻辑错误。但不是语法错误。

F5是启动调试,请注意,如果没有添加断点,F5仍然是运行。
Ctrl+F5则是不启动调试直接运行。

楼主按F5能运行,是因为没有语法错误,编译器忽略了某些警告方面的问题,注意力集中在了程序的运行上。在楼主当前的代码中,只是检查了'ntdll.dll'这个动态库文件。

按Ctrl+F5,不光要检查语法(最起码的)、逻辑错误(比如有没有存在野指针的现象、数组在经过循环以后是否有越界的情况、内存分配是否正常等),还要预测程序的安全性。所以,如果楼主的代码中出现了以上的问题,那么就是有这样的情况发生。

不知道楼主用的什么编译器,VC6中只有在调试中才能发现这些问题,而VS2008就会在运行的时候检查,甚至还没有运行,在编译之前就为你检查出了这些问题。

希望对你有所帮助,谢谢!
915189d9c55f
2010-04-16 · TA获得超过1002个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:172万
展开全部
看你的编译器信息 似乎是在写一个小型控制台程序?

前两句是正常的 只是提示你库已经加载 没有发现符号文件
后面就很明显了 肯定是在指针或者内存的操作上出错了 调试程序捕获并显示了这个错误
但这个错误并不致命 所以在你程序单独运行时没有崩溃 但结果可能会和你所期望的不同

错误已经被捕获了 还在问怎么查错。。

我建议你去编程专业论坛的新手区去提问 并把问题代码贴出来 相信有热心人会帮你的。。 =_=b

参考资料: 如果您的回答是从其他地方引用,请表明出处

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ecba46aab
2010-04-16 · TA获得超过2303个赞
知道大有可为答主
回答量:2477
采纳率:100%
帮助的人:1980万
展开全部
F5是调试
Ctrl+F5是运行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式