我有一个带有调试和发布版本的 VS 2005 C++ 项目。我尝试了以下 4 件事:
- 通过 Visual Studio 构建一个 Debug 可执行文件,并通过 Visual Studio 运行它。
- 在
cd
'ing 到vstudio/debug
. - 通过 Visual Studio 构建 Release 可执行文件,并通过 Visual Studio 运行它。
- 在
cd
'ing 到vstudio/release
.
前3个全部成功:程序运行完成。
然而,第四个在运行时崩溃。调试显示罪魁祸首是对malloc()
operator 内部的调用new()
。相关上下文如下所示:
template<typename T> class Foo {
...
static void bar() {
...
T* ptr = new T();
...
}
...
}
如果有人能想到任何会导致我描述的四分之三症状的问题,将不胜感激。