Heap организуется в виде цепочной структуры. Сначала описатель, затем массив. В описателе описан адрес предыдущего массива, размер данного массива, признак того что он действует и номер дескриптора. В VS также ставятся различные константы по границам описателей, для контроля несанкционированной записи. Если знать нулевой элемент какого-либо массива, то можно выяснить все массивы в данном heap. Каждый heap тоже имеет описатель, который находится перед самим heap. Так что можно заранее выяснить, массив какого размера можно захватить.