How do malloc() and free() work? How do malloc() and free() work? c c