C++ Memory Management: Why does deleting a pointer cause my program to crash?

Q: Why does deleting a pointer cause my program to crash?

Code:

char* a_string = "beware, the end is near!";delete&#091;&#093; a_string;

A: Because the memory that a_string points to was not allocated with new. Only delete memory that was allocated with new. In particular, this string is a constant, so you should not delete it. Also beware that you can not use delete to release memory allocated with malloc.