The difference is big, and very important to understand. Whenever you create an object in C++ using the new keyword you will have to delete it. Whether you use “delete” or “delete[ ]” really depends on what kind of object you are creating. This is best illustrated by an example:
void foo ( )
{
string *sp = new string[50];
string *s = new string;
delete s;
// have to use "[ ]" since sp points to an array of strings:
delete[ ] sp;
}