/* Creates and initializes a new block including its memory allocation on the heap. A block consists of the actual memory to hold the block data and is preceded by an element of size_t, where the size of the block is written to: memPtr -> -------- */
static void * TbxMemPoolBlockCreate(size_t size)
/* Creates and initializes a new block including its memory allocation on the heap. A block consists of the actual memory to hold the block data and is preceded by an element of size_t, where the size of the block is written to: memPtr -> -------- */
static void * TbxMemPoolBlockCreate(size_t size)
{
  void   * result = NULL;
  void   * blockMemPtr;
  TBX_ASSERT(size > 0U);
  if (size > 0U)
  {
    blockMemPtr = TbxHeapAllocate(sizeof(size_t) + size);
    if (blockMemPtr != NULL)
    {
      result = blockMemPtr;
      size_t * blockSizeArray = blockMemPtr;
      blockSizeArray[0U] = size;
    }
  }
  return result;
}