malloc()和free()在C / C ++中如何工作?