<p>I assume that <code>char* = "string"</code> is the same to <code>char* = new char[6]</code>. I believe these strings are created on the heap instead of the stack. So do I need to destroy them or free their memory when I'm done using them or do they get destroyed by themselves?</p>

You don't know where the string literals are stored. It may even be read-only memory, so your code should read:
```
```
const char* c = "string";
```
```
And a
new
char array should be
delete
d just like any other dynamically allocated memory area.