What does "overhead" memory refer to in the case of Linked Lists?
<p>I understand that a node is usually 8 bytes, 4 for a value, 4 for a pointer in a singly linked list.</p>

<p>Does this mean that a doubly linked list node is 12 bytes in memory with two pointers?</p>

<p>Also this book I'm reading talks about how theres 8 bytes of "overhead" for every 12 byte node, what does this refer to?</p>

<blockquote>
  <p>Does this mean that a doubly linked list node is 12 bytes in memory with two pointers?</p>
</blockquote>

<p>Yes, if the data is 4 bytes, and the code is compiled for 32bit and not 64bit, so 4 bytes per pointer.</p>

<blockquote>
  <p>Also this book I'm reading talks about how theres 8 bytes of "overhead" for every 12 byte node, what does this refer to?</p>
</blockquote>

<p>That <em>might</em> be referring to the 8 bytes used for the 2 pointers. But it <em>might</em> also refer to the memory manager's own overhead when allocating the 12 bytes. Memory managers usually have to allocate more bytes than requested so they can store tracking info used later when freeing the memory (class type for destructor calls, array element counts, etc).</p>

python memory-management linked-list