В моем коде я использую массив xyz
из 10 объектов. Когда я пытаюсь получить доступ к элементу массива, используя индекс unsigned int, например: xyz[level]
, я получаю предупреждение 'Buffer overrun. Логично, что я уверен, что уровень не превысит 10. Как избежать этого предупреждения?Избегайте «переполнения буфера» C6386 warning
ответ
Я, вероятно, обучая свою бабушку высасывать яйца здесь, но помните, что «уровень не будет превышать 10» является неправильным для массива размера 10:
char a[10];
a[10] = '\0'; // Bug, and "Buffer Overrun" warning.
+1, потому что я уверен, что именно по этой причине OP получает предупреждение. –
Да, это несколько связано с моей проблемой. Я сделал проверку, подобную этой 'if (level <10)' перед тем, как получить доступ к этому «xyz [level]», и предупреждение исчезло. – bdhar
Вы действительно уверен ? Я до сих пор не получил этого предупреждения. Итак, дважды проверьте.
Во всяком случае, вы можете использовать директиву препроцессора в
#pragma warning(disable: 6386)
. Я обычно толкать и поп это в «стек» прагма
#pragma warning(push)
#pragma warning(disable : 6386)
// Some code
#pragma warning(pop)
here, как советовали.
Это довольно опасно, поскольку предупреждение может быть вызвано ошибкой. Только когда-либо молчание предупреждает, если вы ** ОТЧЕТ **, что вызвало их и что это безвредно. –
- 1. Ошибка переполнения переполнения буфера
- 2. Длина буфера переполнения буфера
- 3. Почему этот код генерирует предупреждения переполнения буфера (C6385/C6386) при анализе кода на Visual Studio 2012?
- 4. Избегайте излишнего переполнения
- 5. Исключение переполнения кучи/буфера
- 6. Exploit переполнения буфера
- 7. Обычные атаки переполнения буфера
- 8. переполнения буфера - Изменения переменных
- 9. Пример использования переполнения буфера
- 10. C - Детали переполнения буфера
- 11. переполнения буфера не произошло
- 12. буфера помощь переполнения
- 13. Проверка переполнения буфера ввода
- 14. Использование переполнения буфера
- 15. Поиск переполнения буфера стека
- 16. Проблема переполнения буфера
- 17. Реализация переполнения буфера
- 18. Разбор символов переполнения буфера
- 19. Простой запуск переполнения буфера
- 20. C# создания переполнения буфера
- 21. Массив переполнения буфера
- 22. Проверка переполнения буфера
- 23. Последствия этого переполнения буфера?
- 24. Вызов функции после переполнения буфера
- 25. Как использовать эксплойт переполнения буфера
- 26. Зачем использовать эксплойт переполнения буфера?
- 27. Как преодолеть атаки переполнения буфера?
- 28. C переполнение буфера переполнения программирования
- 29. защищает программу от переполнения буфера?
- 30. Переменные среды переполнения буфера Linux
Можете ли вы опубликовать код, в котором вы получаете предупреждение? –
Не уверен. Это довольно большая база кода, над которой я работаю. Я пытаюсь воспроизвести его небольшим примером. Позвольте мне опубликовать его, когда мне удастся. Благодаря! – bdhar