function is machine dependent; its use is discouraged.
function is slightly unsafe because it cannot ensure that the pointer
returned points to a valid and usable block of memory.
The allocation made may exceed the bounds of the stack, or even go
further into other objects in memory, and
cannot determine such an error.
with large unbounded allocations.