typedef struct {
   unsigned *bits;
   unsigned size;
} bits_list_type;

#define BYTEWIDTH  8
#define NULL 0

#define BITS_BLOCK_SIZE (sizeof (unsigned) * BYTEWIDTH)
#define BITS_BLOCK(position) ((position) / BITS_BLOCK_SIZE)
#define BITS_MASK(position) (1 << ((position) % BITS_BLOCK_SIZE))

static unsigned
init_bits_list (bits_list_ptr)
  bits_list_type *bits_list_ptr;
{
  bits_list_ptr->bits = NULL;
  bits_list_ptr->bits = (unsigned *) malloc (sizeof (unsigned));

  if (bits_list_ptr->bits == NULL)
    return 0;

  bits_list_ptr->bits[0] = (unsigned)0;
  bits_list_ptr->size = BITS_BLOCK_SIZE;

  return 1;
}


main()
{
  bits_list_type dummy;
  bits_list_type dummy_1;
  bits_list_type dummy_2;
  bits_list_type dummy_3;

  init_bits_list (&dummy);
printf("init 1\n");
  init_bits_list (&dummy_1);
printf("init 2\n");
  init_bits_list (&dummy_2);
printf("init 3\n");
  init_bits_list (&dummy_3);
printf("init 4\n");
}