#include #include struct Int { int v; }; volatile int used; struct Int *mk_Int (int v) { struct Int *q = malloc (sizeof (struct Int)); if (!q) { fprintf (stderr, "Out of memory.\n"); exit (1); } q->v = v; return q; } static void create_objects(int depth) { volatile struct Int *i00=mk_Int(0), *i01=mk_Int(0), *i02=mk_Int(0), *i03=mk_Int(0), *i04=mk_Int(0), *i05=mk_Int(0), *i06=mk_Int(0), *i07=mk_Int(0), *i08=mk_Int(0), *i09=mk_Int(0), *i10=mk_Int(0), *i11=mk_Int(0), *i12=mk_Int(0), *i13=mk_Int(0), *i14=mk_Int(0), *i15=mk_Int(0), *i16=mk_Int(0), *i17=mk_Int(0), *i18=mk_Int(0), *i19=mk_Int(0), *i20=mk_Int(0), *i21=mk_Int(0), *i22=mk_Int(0), *i23=mk_Int(0), *i24=mk_Int(0), *i25=mk_Int(0), *i26=mk_Int(0), *i27=mk_Int(0), *i28=mk_Int(0), *i29=mk_Int(0), *i30=mk_Int(0), *i31=mk_Int(0), *i32=mk_Int(0), *i33=mk_Int(0), *i34=mk_Int(0); used += i00->v; used += i01->v; used += i02->v; used += i03->v; used += i04->v; used += i05->v; used += i06->v; used += i07->v; used += i08->v; used += i09->v; used += i10->v; used += i11->v; used += i12->v; used += i13->v; used += i14->v; used += i15->v; used += i16->v; used += i17->v; used += i18->v; used += i19->v; used += i20->v; used += i21->v; used += i22->v; used += i23->v; used += i24->v; used += i25->v; used += i26->v; used += i27->v; used += i28->v; used += i29->v; used += i30->v; used += i31->v; used += i32->v; used += i33->v; used += i34->v; if (depth < 2) { for (size_t i = 0; i < 10; i++) { create_objects(depth+1); } } free((void*)i00); free((void*)i01); free((void*)i02); free((void*)i03); free((void*)i04); free((void*)i05); free((void*)i06); free((void*)i07); free((void*)i08); free((void*)i09); free((void*)i10); free((void*)i11); free((void*)i12); free((void*)i13); free((void*)i14); free((void*)i15); free((void*)i16); free((void*)i17); free((void*)i18); free((void*)i19); free((void*)i20); free((void*)i21); free((void*)i22); free((void*)i23); free((void*)i24); free((void*)i25); free((void*)i26); free((void*)i27); free((void*)i28); free((void*)i29); free((void*)i30); free((void*)i31); free((void*)i32); free((void*)i33); free((void*)i34); } int main(int argc, char** argv) { (void)argc; (void)argv; for (size_t i = 0; i < 10000; i++) { create_objects(0); } return 0; }