0

我有一个程序在调试时会导致内存损坏,但在发布时运行得很好。为了增加陌生感,程序在“崩溃”之前完成了它的功能(它将数据保存到文件中)。这是否意味着 Visual Studio 根本不喜欢我的程序,或者这是否意味着我有一个需要修复的严重错误?一般来说,如果调试模式崩溃,是否总是意味着程序有问题,或者是否可能只是程序在调试模式下运行的方式有问题,所以我不必太担心?

4

3 回答 3

4

这几乎可以肯定是您的应用程序中的一个错误,需要跟踪和修复。

有许多类型的错误会导致未定义的行为。某些类型的未定义行为(例如内存损坏)可能表现为看似随机的故障,这些故障在程序​​中发生的时间比导致它们的错误要晚得多。

在调试模式下,Visual Studio 会竭尽全力确保此类故障尽早发生并尽可能突出。在发布模式下,重点是性能。

在https://stackoverflow.com/a/312352/367273中有一个很好的总结调试和发布之间的一些差异

于 2013-04-03T15:22:35.573 回答
2

不,这不行。这很可能意味着某些变量或指针未初始化。在调试模式下,此类未初始化的值通常默认为 0,而在发布(优化)代码中不使用这种默认值。

于 2013-04-03T15:22:41.893 回答
0

这意味着您有严重的错误需要修复。最可能的原因是您使用了未初始化的变量。在 VS 中,这是程序在调试和发布时运行方式不同的最常见原因。

于 2013-04-03T15:22:20.970 回答