Используйте strncpy для безопасности, это позволяет вам указать максимальную длину на случай, если она не прервана.Это довольно сложно проверить, но да, если в отладчике он показывает правильно, то он корректно завершается.
Редактирование: Должно было дать понять, что это только делает его безопасным в том смысле, что вызов функции не произведетстранные результаты, если вы указываете длину, вы все равно должны вручную завершать строку.
В общем случае единственное время, когда оно не будет завершено нулем, связано с ошибкой программиста, так как я считаю, что все функции в библиотеке C возвращают правильнопрерванные строки, возможные ошибки могут быть забыть дополнительный байт для терминатора.Мне трудно думать о случаях, когда проблема со строками, с которой я столкнулся, была из-за сбойного нулевого терминатора, за исключением, возможно, пользовательских функций манипуляции.