strncpy- все статьи тега
Почему вы должны использовать strncpy вместо strcpy?
Edit: я добавил источник для примера. я наткнулся на : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'n", destination); return_string = strcpy(destination, source); printf("after strcpy, dest becomes '%s'nn", destination); /* This is how strncpy works */ printf( "destination1 is originally = '%s' ...
Почему strncpy не завершается null?
strncpy() якобы защищает от переполнения буфера. Но если он предотвращает переполнение без завершения null, то, скорее всего, последующая строковая операция будет переполняться. Поэтому, чтобы защитить себя от этого, я делаю: strncpy( dest, src, LEN ); dest[LEN - 1] = ''; man strncpy выдает: функция strncpy () аналогична, за исключением того, что копируется не более n байт src. Таким образом, если нет нулевого байта среди первых n байтов src, результат не будет нуль-завершается. без ну ...