Operator new Changes In VC++ 8
I just read a post from Bug Babble discussing
checking the result of operator new in vc8. This is an important point and one which I have seen people overlook often in the past.
Related: Linux has long had a policy (or has long had one policy or another) of overcommitting memory. In other words, a call to malloc() or operator new would validate that you have room in virtual memory and that your heap wasn't shot, but beyond that, it would simply give you a pointer without locking down memory for it. There are lots of interesting discussions of this behavior; google overcommit_memory for lots of interesting stuff about it.
This, of course, means that operator new won't throw or return NULL unless you have input that is massively out of bounds or have trashed your heap.