text: 
  #include <stdio.h>
  #include <stdlib.h>
  
  /* The original test driver machinery. */
  #define N_TEST_TRANSACTIONS 500
  #define N_TEST_ARR 2000
  
  #define M_TEST_MALLOC 1000
  
  void* test_arr[N_TEST_ARR];
  
  int main ( int argc, char** argv )
  {
     int i, j, k, nbytes;
     unsigned char* chp;
  
     for (i = 0; i < N_TEST_ARR; i++)
        test_arr[i] = NULL;
  
     for (i = 0; i < N_TEST_TRANSACTIONS; i++) {
        j = random() % N_TEST_ARR;
        if (test_arr[j]) {
           free(test_arr[j]);
           test_arr[j] = NULL;
        } else {
           nbytes = 1 + random() % M_TEST_MALLOC;
           if (random()%64 == 32) 
              nbytes *= 17;
           test_arr[j] = malloc( nbytes );
           chp = test_arr[j];
           for (k = 1; k < nbytes; k++) 
              chp[k] = (unsigned char)(k + 99);
        }
     }
  
     for (i = 0; test_arr[i] == NULL; i++) ;
     free(test_arr[i]);
     ((char*)test_arr[i])[0] = 0;
  
     for (i = 0; i < N_TEST_ARR; i++) {
        if (test_arr[i]) {
           free(test_arr[i]);
           test_arr[i] = NULL;
        }
     }
  
     return 0;
  }
  