C-строка — байты до \0; логическая длина не равна размеру массива.
Разбор
- Нужно место под терминатор.
sizeof("abc")==4, strlen==3.
- Бинарные нули внутри — не строка.
- Потеря
\0 ломает strlen/printf.
Итог
Контракт строки — терминатор в пределах буфера.