Эта строка выглядит неопределенной.В C строки, которые не заканчиваются символом '\0'
(он же нулевой символ), приводят к постоянным проблемам, потому что многие стандартные библиотеки и системные библиотеки ожидают, что строки заканчиваются нулем.
Убедитесь, чточто, когда вы закончили читать все данные, строка завершается;в некоторых случаях это должно быть сделано вручную.Есть несколько способов сделать это (ниже все символы строки становятся нулевыми, поэтому, пока вы не перезапишите самый последний, строка всегда будет заканчиваться нулем):
// (1) declare an array of char, set all characters to null character
char buffer[1000] = {0};
В качестве альтернативы, если вы отслеживаете, где находитесь в буфере, вы также можете сделать это:
// (2) after reading in all data, add the null character yourself:
int n; // number of bytes read
char buf[1000];
// read data into buf, updating n
buf[n] = '\0'; // (tip: may need to use buf[n+1])
В любом случае важно, чтобы вы не переступали через конец буфера.Если вы выделили только 1000 байт, используйте только 999 байт и сохраните 1 байт для нулевого символа.