every object in the heap is allocated like this |[HDR]|[RAW1][RAW2]...|[SCM1][SCM2]...| |--1--|----rawlen-----|----scmlen-----| the stack frames are like this: [ arg 0 ] <----- base ptr ---------------