The free_item() function destroys the item and frees all allocated storage for that item. The new_item() allocates storage for a new item then copies in the item name and description for the new item. A pointer to the newly created item is returned to the caller.
RETURN VALUES
The new_item() function returns NULL on failure, the free_item() returns one of the following error values:
E_OK
The function was successful.
E_BAD_ARGUMENT
One or more of the arguments passed to the function was incorrect.