If you compile your program in Visual Studio Debug mode then the first delete should set the memory to 0xFEEEFEEE (see this question) - however the address is still accessible by your process so is unlikely to cause an exception. Linking in a product like BoundsChecker or Purify I believe checks for these byte patterns so that it can detect accessing of deleted memory.