When you allocate memory on the heap, your allocator will keep track of how much memory you have allocated. This is usually stored in a "head" segment just before the memory that you get allocated. That way when it's time to free the memory, the de-allocator knows exactly how much memory to free.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…