STRNCAT WFORMAT-Overflow Предупреждение при использовании GCC 8.2.1C++

Программы на C++. Форум разработчиков
Anonymous
STRNCAT WFORMAT-Overflow Предупреждение при использовании GCC 8.2.1

Сообщение Anonymous »

Я использую GCC 8.2.1 и пытаюсь создать этот код: < /p>

std::string dir = "Documents";
char * _tempname = static_cast (malloc( dir.length() + 14));
strncpy (_tempname, dir.c_str(), dir.length()+1 );
strncat (_tempname, "/hellooXXXXXX", 13);
< /code>

Но это дает мне это предупреждение: < /p>


Предупреждение: 'char*strncat (char*, const char*, size_t)' < /code>
13 равен длина исходного [-wstringop-overflow =] < /p> < />
13 равна [-wstringop-overflow =] < /p> < /> < />
13 равен [-wstringop-overflow =] < /p> < />
13 равен [-wstringop-overflow =] < /p>
13 равня /> После поиска я обнаружил, что это проблема переполнения, чтобы Size_t равна длине источника в соответствии с обсуждением в этой ссылке, но я не мог понять, почему это считается проблемой и почему это переполняет пункт назначения. И как я мог удалить это предупреждение, не изменяя код?

Подробнее здесь: https://stackoverflow.com/questions/534 ... -gcc-8-2-1

Вернуться в «C++»