#include /* expand() takes an existing malloc'd int array of size, and doubles it, if possible. It returns 0 if successful, non-zero on failure (meaning the array was not expanded. */ int expand(int **array, int *size) { int *newp = 0; newp = (int *)realloc(*array, *size * 2 * sizeof(int)); if (!newp) return(-1); *size *= 2; *array = newp; return 0; }