delete[] frees whatever memory was allocated with new[], whatever was allocated.

If you used new to allocate, use delete to free.
If you used new[] to allocate, use delete[] to free.
Even better, don't use new/delete at all. Use containers and make_unique/make_shared.