malloc will return a NULL pointer if the size of the block to be allocated is zero, or if there was insufficient memory