Hi all;

I was reading through the source code for Doom, and found an operator that I'm not familiar with. Despite some Google research, the only explanation I can find comes from a brief mention on Wikipedia saying that it's a Member by Pointer, with no other info.

Does anyone know what this means? I'm very familiar with pointers, but don't know what Member by Pointer is. Sample code down below.

In the source code, this operator is used all over the place, so it must be really important and useful.


Thanks
-Fremontknight

Code:
 // set the entire zone to one free block
    mainzone->blocklist.next =
	mainzone->blocklist.prev =
	block = (memblock_t *)( (byte *)mainzone + sizeof(memzone_t) );

    mainzone->blocklist.user = (void *)mainzone;
    mainzone->blocklist.tag = PU_STATIC;
    mainzone->rover = block;
	
    block->prev = block->next = &mainzone->blocklist;