When you try to allocate memory with new and you don't have enough space it throws exception with "bad memory allocation" in what field of it. I looked at the source code and saw that it exactly throws that exception when there's not enough space. I imagined why what field is not "Not enough memory". That way we could know why allocation failed.
I am using VS2008 SP1.