Q:

Where is the "space itself" in the storage allocator described at the end of K&R's book?

At the very end of Kernighan & Ritchie's book the The C Programming Language, a storage allocator is described. It says

Each block contains a size, a pointer to the next block, and the space
  itself.

But I don't see that in the code:
typedef long Align;  /* for alignment to long boundary */

union header {       /* block header */
   struct {
      union header *ptr; /* next block if on free list */
      unsigned size;     /* size of this block */
   } s;
   Align x;          /* force alignment of blocks */
};

typedef union header Header;

The pointer to the next block is *ptr and the size is unsigned size but which variable is the space itself? Is the space itself the variable x?

A:

That's just the header for the block. That is, when space is allocated, you'd allocate some amount of space, in multiples of sizeof(header), put the header in the first sizeof(header) bytes, and then have size bytes remaining in the allocated memory.  From the text (I think;  this is what I was led to when I Googled some of the text you quoted, and comes unexpectedly from a Java tutorials site), emphasis added:

A free block contains a pointer to the next block in the chain, a record of the size of the block, and then the free space itself; the control information at the beginning is called the "header." To simplify alignment, all blocks are multiples of the header size, and the header is aligned properly. This is achieved by a union that contains the desired header structure and an instance of the most restrictive alignment type, which we have arbitrarily made a long[.]
page 186, Chapter 8, The C Programming Language, Second Edition

Later, on p. 187, the sample implementation of malloc() shows that memory is always allocated in multiples of headers, with an addition header at the beginning for the control information:

void *malloc(unsigned nbytes)
{
    /* ... */
    nunits = (nbytes+sizeof(Header)-1)/sizeof(Header) + 1;

page 187, Chapter 8, The C Programming Language, Second Edition

Possibly Useful References

Not quite the same question, but includes discussion of the same, another Stack Overflow question, What am I missing from this K&R sample?
Explain this implementation of malloc from the K&R book

