Пишу функцию, которая добавляет строку в массив строк:
char **add_string(char **array, const char *string)
{
int i = 0;
while (array[i] != NULL){
i++;
}
array = realloc(array, (i + 1) * sizeof(char *));
array[i] = malloc((strlen(string) + 1));
strcpy(array[i], string);
return array;
}
Функция работает, но Valgrid выдает
Invalid read of size 8, 29 bytes are definitely lost in 5 blocks.
Изначально сам массив инициализирован вот так:
char **init_array(void)
{
char **array = malloc(sizeof(char *));
array[0] = NULL;
return array;
}