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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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