I'm not sure what your confusion with char* is. The fact that a pointer points to a char doesn't make any difference to when you should delete it. Like Athar said, delete/delete[] when you used new/new[] and also, free when you used malloc. Don't mix between them