If size is less than 1 E_WARNING will be thrown and NULL returned