No you cannot.
You can test whether a pointer has a null pointer value by comparing it against nullptr (or NULL in pre-C++11; NULL should never be used since C++11), but you can never tell whether a non-null pointer is pointing to a valid object, whether that object is part of an array or whether that object/array was allocated by new/new[].
It is the programmer's job to assure that the code can never reach a state where the above information is needed, but unavailable.
The easiest way of doing that is to never use raw new/delete. Instead only use std::vector and std::unique_ptr.
You also don't need to check for a null pointer before calling delete[]. delete[] can be called with a null pointer, in which case it simply doesn't do anything. You cannot call delete[] with a non-null pointer that doesn't have a value returned by new[] (and that hasn't been delete[]ed yet) tough. That would have undefined behavior.
new float [capacity], when calling the deconstructor. @walnutstd::vectorfor that. If you are not allowed to use it, thennew float[capacity]is correct. The queue should be a class and thequeuepointer should be a private member of that class. Only the member functions that you implement should (be able to) change the pointer. This way you can be sure that it is always either a null pointer (when you set it to that) or a pointer to afloatarray allocated withnew float[...]. No outside code should be allowed to change the pointer. Then you don't need the check that you are asking for.