Values is an array of all of the free standing arguments passed in
LV is a dictionary, labels in lv_labels and values in lv_values, it contains any labeled arguments '-a b', if a value is not provided lv_value will point to NULL
values and lv_values both point to argv, and lv_labels points to argv + 1, as to ignore the dash('-')
to free the data, it does not free the individual values and labels, as these just point to the values in argv, so if you have moved / modified these pointers, you will have to free them yourself.