/*----------------------------------------------------------------------------+ | Function : ArrayAddItem | | Description : Add item to the end of the specified array (always added as | the last item) | | Input : arr Pointer to array structure we're interested in | item Pointer to item to add | | Output : None | | Return : TRUE or FALSE +----------------------------------------------------------------------------*/ int ArrayAddItem (JNL_ARRAY *arr, void *item) { int rtv = FALSE; if (arr != NULL && item != NULL) { if (arr->auto_extend && arr->nitems >= arr->array_size) rtv = ArrayExtend (arr, arr->extend_size); if (arr->nitems < arr->array_size) { memcpy (ArrayIndexAddress (arr, arr->nitems), item, arr->item_size); arr->last_item = arr->nitems; if (arr->first_item == -1) arr->first_item = 0; ++arr->nitems; if (arr->auto_sort) ArraySort (arr); else arr->sorted = FALSE; /* Can't guarantee order */ rtv = TRUE; } } return rtv; }
int main(int argc, char *argv[]) { int indx; int array_size; if (argc > 1) { array_size = atoi(argv[1]); } else { array_size = 1024; } my_array = (int *) malloc(sizeof(int)*array_size); fill_array(array_size); ArraySort(my_array, cmpfun, array_size); free(my_array); return(0); }