Это не ответ на ваш вопрос (и он вам не нужен, так как была указана ошибка), но у меня есть несколько других комментариев по поводу вашего кода:
char* events= realloc(NULL, 1);
events[0] = '\0';
Вы не проверяете, что realloc
успешно выделил память.
char* timestamp= realloc(NULL, 20);
timestamp[0] = '\0';
Та же проблема здесь. В этом случае вам не нужно realloc
вообще. Поскольку это буфер фиксированного размера, вы можете использовать просто:
char timestamp[20] = "";
И не делайте этого:
str1 = realloc(str1, arrayLength);
потому что, если realloc
не удастся, вы потеряете память, на которую ранее указывал str1
. Вместо этого:
char* temp = realloc(str1, arrayLength);
if (temp != NULL)
{
str1 = temp;
...
}
Обратите внимание, что, поскольку вы изменяете stringAppend
для возврата новой строки, вы должны выполнять аналогичные проверки в вызывающих функциях.
Кроме того, «разделитель» пишется с двумя As, а не с двумя Es.