Crash will happen when you try to use memory after when allocation actually fails. (other reasons include dereferencing wild pointer, trying to access memory that belongs to other process etc.) but if allocation fails due to unavailability of memory, that alone will not result in crash.