Я не получаю предупреждения компилятора от этого, но это segfaults. Итак, как я могу скопировать '\ 0' в начале строки, чтобы я мог затем использовать strncat? (Использование strncpy не допускается и использование memcpy, а также завершение строкового сегмента также.)
Я написал это, чтобы проиллюстрировать проблему:
void func(char **str)
{
*str = realloc(*str, -);
*str[0] = '\0'; // I get segfault here.
strncat(*str, -, -);
// memcpy(*str, -, -);
// *str[strlen(*str)] = '\0'; // I get segfault here.
}
int main(void)
{
char *str = NULL;
func(&str);
return 0;
}
РЕДАКТИРОВАТЬ : Я хотел написать strlen (* str), а не strlen (str). К сожалению.