C How Does .Net Framework Allocate Memory For Outofmemoryexception?