【发布时间】:2011-07-25 18:00:46
【问题描述】:
std::string s("foo");
sprintf(buf,"%s",s);
为什么至少在 MSVC 2010 下,这行代码在 DEBUG 中没有错误,但在 RELEASE 中没有错误?
【问题讨论】:
-
你为什么要开始这样做?
-
谁给我-1没有任何解释??我相信理解为什么像这样的典型错误可以绕过调试模式是很有趣的
-
他真的应该改用字符串流或者完全改用C!
-
是的,但它是用于实时处理的......而且 sprintf 比 c++ 流更快!
-
@Guillaume07:我没有将其列为 -1。但是,为 Debug 目标编译 C++ 并不能保证它会为您找到所有错误。事实上,Debug 根本不会为您找到任何错误。相反 - 除非您更改了设置 - 它通常会切换优化并添加调试符号的创建,以便您可以设置断点并逐步执行代码(简单地说)。不过,我可能误解了你。