Answer from cs61c-ei (Jing Chen 16669246) for Question 3 The Java equivalent to malloc is new (creating new instances of objects) and the Java equivalent to free is the delete operator. Someone cannot build an automatic memory allocation /deallocation system for C like those available for Java. Because of the fact that C allows casting of void pointers to and from pointers of any type with a compatible size and alignment, it is impossible to determine automatically whether or not a piece of storage is no longer need and may be reused for future allocations. It is also not possible to make room for a new dynamically-allocated object. C allocates blocks of storage when requested and never touches them again until the user frees them.