Учитывая этот код:Действительно ли strncat() всегда заканчивается?
limit = sizeof(str1)-strlen(str1)-1;
strncat(str1,str2,limit);
Если str2
длина больше, чем limit
, делает strncat
Нуль завершает str1
или я должен добавить этот код, как и в случае strncpy
?
str1[sizeof(str1)-1] = '\0'
Вы уверены, что 'str1' имеет тип массива, правильно? –
неправ, неполный. Вы __had__, чтобы упомянуть, что 'str1' - это массив. –
Как объявляется 'str1'? Мы можем догадаться, но имейте в виду, что кто-то, кто не знаком с возможными проблемами, будет использовать ваш код и ... получить проблемы. Как бы то ни было, ваш код не сработает (возможно, эффектно), если 'str1' является символом' char * '. – usr2564301