int _strncat(char *dest, char *src,int dest_size)
{
int status = 0;
if ( (dest_size - strlen(dest)) > strlen(src) )
{
strncat( dest, src, strlen(src) );
dest[dest_size] = '\0';
status = 1;
}
return status;
}Можноли считать даную шубу безопасной?
>[оверквотинг удален]
> int status = 0;
> if ( (dest_size - strlen(dest)) > strlen(src) )
> {
> strncat( dest, src, strlen(src) );
> dest[dest_size] = '\0';
> status = 1;
> }
> return status;
> }
> Можноли считать даную шубу безопасной?что есть dest_size?
>[оверквотинг удален]
> int status = 0;
> if ( (dest_size - strlen(dest)) > strlen(src) )
> {
> strncat( dest, src, strlen(src) );
> dest[dest_size] = '\0';
> status = 1;
> }
> return status;
> }
> Можноли считать даную шубу безопасной?что есть dest_size?
так-то, еще не факт, что strlen(dest) не больше dest_size
dest_size, IMHO, должна быть типа size_t
>[оверквотинг удален]
>> strncat( dest, src, strlen(src) );
>> dest[dest_size] = '\0';
>> status = 1;
>> }
>> return status;
>> }
>> Можноли считать даную шубу безопасной?
> что есть dest_size?
> так-то, еще не факт, что strlen(dest) не больше dest_size
> dest_size, IMHO, должна быть типа size_tdest_size - это размер, выделенной памяти для dest
>[оверквотинг удален]
>>> dest[dest_size] = '\0';
>>> status = 1;
>>> }
>>> return status;
>>> }
>>> Можноли считать даную шубу безопасной?
>> что есть dest_size?
>> так-то, еще не факт, что strlen(dest) не больше dest_size
>> dest_size, IMHO, должна быть типа size_t
> dest_size - это размер, выделенной памяти для destколичество байт?
как считаете, dest[dest_size] лежит в пределах выделенной памяти?
>[оверквотинг удален]
>>>> status = 1;
>>>> }
>>>> return status;
>>>> }
>>>> Можноли считать даную шубу безопасной?
>>> что есть dest_size?
>>> так-то, еще не факт, что strlen(dest) не больше dest_size
>>> dest_size, IMHO, должна быть типа size_t
>> dest_size - это размер, выделенной памяти для dest
> количество байт?да
> как считаете, dest[dest_size] лежит в пределах выделенной памяти?нет конечно dest_size - приходит с -1