char* f; // create pointer, its value has not been set and is undefined
delete f; // VERY BAD! who knows what f is pointing to? It could be anywhere in memory.
char* g = 0; // create pointer initialised to 0. GOOD PRACTICE!!
delete g; // GOOD, no harm comes by deleting a zeroed pointer
char* h = newchar; // create a pointer pointing to a single char
delete h;// GOOD, delete the char we created with new
char* i = newchar[100]; // create a pointer pointing to an *array* of characters.
delete i; // BAD!! our pointer is pointing to an *array* that we allocated with new[], so we must delet with delete[]
char* j = newchar[100]; // create a pointer pointing to an *array* of characters.
delete[] j; // GOOD!! we created with new[], and we deleted with delete[]