Quiz submission record for quiz2-1-1 at Sun Jun 27 22:35:44 2004: Your Answer for Question 1: b seems to be the only true statement. Technically malloc can be called with a size of 0, which would not reduce the number of free blocks (this also disproves a). Since malloc does not seem to do anything with freeing memory, it cannot increase the number of blocks. Your Answer for Question 2: c is true. If a block being released is between two blocks, those two blocks actually merge into one in a way and thus there are less free blocks but more space available. Because of this it cannot be reduced more than 1. This then makes a false, because blocks are not always increased. The number can also be left unchanged(b), if there is one block occupied in the beginning of memory and one free block and is released; you started with one free block and then get a bigger free block. Your Answer for Question 3: The Java equivalent to malloc is the new keyword. Whenever new is used, it creates a new object, which would require memory allocation. Java does not really have an equivalent to free as memory management is done automatically and when something is not being used, it will be cleared. In C it is impossible to tell whether or not an object is no longer needed. This is because of programs ability to cast pointers. Your Answer for Question 4: Reference count method will not work due to the circular structure. Mark and sweep on the other hand will work as it is basically a depth first graph traversal and all possible "nodes" are visited to see whether they are alive or not. Your Answer for Question 5: I am new to memory management and C. I am still trying to learn it, but the things introduced in the seperate notes were pretty confusing or not clear. Some of the things mentioned in the notes seemed advanced or perhaps I just did not know what they were talking about. Your unique submission ID is quiz2-1-1-cs61c-al-1088400944-558.