Рассмотрим ситуацию: у меня есть буфер известной длины, который предположительно хранит строку с нулевым символом в конце, и мне нужно знать длину строки.* и строка оказывается не завершена нулем программа сталкивается с неопределенным поведением при чтении за пределами конца буфера.Поэтому я хотел бы иметь функцию, подобную следующей:
size_t strlenUpTo( char* buffer, size_t limit )
{
size_t count = 0;
while( count < limit && *buffer != 0 ) {
count++;
buffer++;
}
return count;
}
, чтобы она возвращала длину строки, но никогда не пыталась прочитать за пределами конца буфера.функция уже в библиотеке C или я должен использовать свою собственную?