Is there an operator ( similar to sizeof() ) that will tell how many objects have been allocated in memory using "new" to a pointer? In other words:
The reason for this is that I am writing wrapper functions for "new" and "delete." It is easy to tell how many objects are being allocated (since that's a parameter to new[]), but I am trying to determine how to tell how many are being deleted with delete[].Code:int * foo = new int[50]; int bar = some_operator(foo); // bar should be 50 //(or 200 if it referred to bytes, assuming 4-byte ints) // Either of these would be helpful.
Also, "delete" is typically used to deallocate a single object, while "delete[]" deallocates an array. Is it harmful to call "delete[]" on a single object (not an array, or an array of one, if you will)? Along similar lines, is it acceptable to allocate with "new[1]" instead of just "new"?