p0 = malloc(size0); p1 = malloc(size1); p2 = malloc(size2); ... free(p2); free(p1); free(p0);
p0 = malloc_autoRelease(size0); p1 = malloc_autoRelease(size1); p2 = malloc_autoRelease(size2); ... release();
p0 = malloc_autoRelease(size0); p1 = newObject_autoRelease(...); ... release();
void myFunc()
{
ARP *pool = newAutoReleasePool();
p0 = malloc_autoRelease(pool, size0);
p1 = newObject_autoRelease(pool, ...);
...
releaseARP(pool);
}