У меня есть функция, которая берет указатель на символ ** и заполняет его строками (массив строк, я думаю). * list_of_strings * выделяется память внутри функции.
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? */
Как мне освободить память после того, как я использовал строки? Если я позвоню
free(list_of_strings);
Разве это не освобождает фактические указатели, а не память, которую использовала каждая строка? Как мне полностью освободить память
Просто для ясности функция выглядит примерно так:
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
}
/* ... */
}