Wow no one took this one yet?
The auto release pool is the work horse behind the autorelease
keyword. Without it your just leaking memory everywhere.
When you use [someObject autorelease] your telling the it to add a
reference to the auto release pool. You use this to relinquish
ownership of an object to a calling method. All the objects that Apple
has (Foundation, UIKit, etc.) all use this. Without those two lines
there is no auto release pool to work with.
I would go back to the first or second lecture about memory
management. There is a lot more detail about this there.