The ARRAY is on the stack -- there isn't really a pointer to the array anywhere except temporarily when the array name is used by itself (if you want to look at it like that). Also, when you delete something, it doesn't matter where the pointer is stored, it's where the data pointed to is stored. The pointers usually ARE on the stack. But yeah, you must delete each element individually -- only use delete [] if the array itself is what's dynamically allocated.
*Thinks about writing an article on arrays and pointers. A lot of people seem to have the same problem with the topic*