I have a function that takes a pointer to a char ** and fills it with strings (an array of strings I guess). *list_of_strings* is allocated memory inside the function.
char * *list_of_strings = NULL;
/* list_of_strings malloc'd inside function */
fill_strings_with_stuff(&list_of strings);
use_list_for_something(list_of_strings);
/* Now how do I free it all? */
How would I go about freeing the memory after I've used the strings? If I call
free(list_of_strings);
won't that just free the actual pointers and not the memory each string itself was using? How do I completely free the memory
Just for clarity the function looks something like this:
fill_strings_with_stuff(char *** list)
{
*list = malloc(AMOUNT);
for (i = 0; i < SOMETHING; i++) {
*(list + i) = malloc(LINE_LEN);
*(list + i) = some_string_from_somewhere
}
/* ... */
}