当我在调试模式下运行使用以下代码创建的 .exe 时,它显示一些断言失败并且程序崩溃但是当我运行从以下代码的发布模式创建的相同 exe 时,它工作正常。
请帮助确定为什么我在调试模式下出现断言失败,但在发布模式下却没有。
#include<iostream>
using namespace std;
#include<string.h>
void main()
{
char *buf = new char[5]; //pre-allocated buffer
buf = "Hello";
delete [] buf;
getchar();
//cout<<buf;
//string *p = new (buf) string("hi"); //placement new
//string *q = new string("hi"); //ordinary heap allocation
}