O programa trava ao desalocar um array de caracteres
Quando eu executo o .exe sendo criado com o código abaixo no modo de depuração, ele mostra alguma falha de declaração eo programa trava Mas quando eu executo o mesmo exe criado a partir do modo de liberação do código abaixo, está funcionando bem.
Por favor, ajude a identificar por que estou recebendo a falha de declaração no modo de depuração, mas não no modo de liberação.
#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
}