1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
#include <stdio.h>
#include <stdlib.h>
#include "misc.h"
/*****************************************************************************/
/* generate a random num from min to max inclusive on both ends */
int rand_num( int min, int max )
{
/* prevent /0 errors and strange numbers */
if( min > max )
{
fprintf(stderr, "for rand_num(%d, %d), max must be > min.\n", min, max);
return max;
}
else if( min == max )
return max;
return rand()%(max-min+1)+min;
}
/*****************************************************************************/
void * create_array( int length, int size )
{
void *array;
if( length == 0 || size == 0 )
{
fprintf(stderr, "can't create an array of 0 length. [%d](%d)\n", length, size);
return NULL;
}
array = malloc(length*size);
if( array == NULL )
{
fprintf(stderr, "fatal error: can't malloc space for array.\n");
exit(EXIT_FAILURE);
}
return array;
}
void delete_array( void *array )
{
free(array);
return;
}
/*****************************************************************************/
void ** create_grid( int r, int c, int size )
{
void **grid;
int i;
if( r == 0 || c == 0 || size == 0 )
{
fprintf(stderr, "can't create grid with 0 dimenson/size [%d][%d](%d).\n", r, c, size);
return NULL;
}
grid = (void **) malloc( r * sizeof(void*) );
if( grid == NULL )
{
fprintf(stderr, "fatal error: can't malloc space for grid rows.\n");
exit(EXIT_FAILURE);
}
for( i = 0; i < r; i++ )
grid[i] = (void *) create_array(c,size);
return grid;
}
void delete_grid( void **grid, int r )
{
int i;
if( r == 0 )
fprintf(stderr, "can't free grid with 0 rows.\n");
for( i = 0; i < r; i++ )
delete_array(grid[i]);
free(grid);
return;
}
|