Answer from cs61c-ei (Jing Chen 16669246) for Question 2 Only statements b and c are true. When freeing memory (for example block X), adjacent blocks are checked to see if they are also free. If one of these blocks is free and has the right size, this free block is then coalesced (joined together) with block X to form a larger free block of memory. This would leave the number of free blocks unchanged (making b true). In addition, if both adjacent blocks were free, then block X would be freed to combine to a form a larger free block of memory with its buddies. This would reduce the number of free blocks by one by combining two smaller free blocks into one larger one (making c true).