Answer from cs61c-eq (Nicholas Hwang 16732453) for Question 3 "new" is Java's equivalent to memory allocation and the automatic garbage collector is the equivalent to freeing memory in Java. The reason why C cannot implement an automated memory allocation/deallocation system is because any generalized implementation requires generalized pointers to objects, which is insufficient in providing enough information about allocated objects to automate the process. This information is needed to retrieve enough information to know where and what pointers are pointing to (rather than a void pointer which could be anything unless you know ahead of time what you'll be allocating or retrieving).