#include #include #define BITS_IN_ADDR 16 int * genAddress (int naddr, int seed) { int i; int temp, temp2; int *arr = malloc (naddr * sizeof (int)); if (arr == NULL) { fprintf (stderr, "Malloc failed"); exit (0); } // must seed at least 50 addresses if (naddr < 50) return NULL; srand (seed); for (i = 0; i < 50; i++) arr[i] = rand () % (1 << BITS_IN_ADDR); for (i = 50; i < naddr; i++) { arr[i] = 0; temp = rand () % 10; temp2 = rand () % 50; if (temp < 5) { arr[i] = arr[i - temp]; } else if (temp2 < 25) { arr[i] = arr[i - temp2]; } else { arr[i] = rand () % (1 << BITS_IN_ADDR); } } return arr; }