Don't need help myself, but I did find something interesting which may prove useful for others when using dynamic arrays in C++. As most people using C++ know, arrays are essentially constant pointers for which the program does not keep track of size. However, dynamic arrays do track their size. What's more, the size can be accessed most of the time. I wouldn't even consider using it for an actual program, and neither should anyone else, since from what I gather, where the array size is at may vary from one system to another; however, it may be useful for debugging in some cases.
So, how to get the size of the array: int size = *((int*)pArray - 4);
This will then give you the total array size in bytes. And from a bit of testing on my own, I found out that for Visual Studio IDE in debug mode, when the array's memory is deallocated with the delete[] keyword, this memory, is set to 0xfeeefeee (Microsoft's debug code which means the memory has been freed up), just as the rest of the array is, thus confirming it is indeed part of the array, rather than merely cosmic coincidence of some sort. Dunno how common this knowledge is, but as I don't recall seeing it on any of the tutorials I read about arrays, I figured it might be useful.
The purpose of the data itself is, as far as I know, for deallocating the dynamic memory; when "delete[] pArray;" is called, it needs to know how long pArray is in order to free up the memory.
Again: DO NOT use these methods for anything other than debug purposes; I haven't the foggiest idea as to what horrible things may happen if you were to. My guess is Cthulhu would rise to do combat with Dr. Who. Best I can figure, it's metadata put there by the heap.