В различных случаях, когда буфер предоставляет стандартной библиотеке множество строковых функций, гарантировано ли, что буфер не будет изменен за пределами нулевого терминатора? Например:
char buffer[17] = "abcdefghijklmnop";
sscanf("123", "%16s", buffer);
Теперь buffer
требуется равное "123\0efghijklmnop"
?
Другой пример:
char buffer[10];
fgets(buffer, 10, fp);
Если строка чтения имеет длину всего 3 символа, можно ли быть уверенным, что 6-й символ такой же, как до вызова fgets?