Как избежать предупреждения переполнения буфера C6386 - PullRequest
0 голосов
/ 11 июня 2010

В моем коде я использую массив xyz из 10 объектов. Когда я пытаюсь получить доступ к элементу массива с помощью индекса unsigned int, например: xyz[level], я получаю 'Buffer overrun ' предупреждение. Логично, я уверен, что уровень не превысит 10. Как избежать этого предупреждения?

Ответы [ 2 ]

9 голосов
/ 11 июня 2010

Я, наверное, учу свою бабушку сосать яйца здесь, но помните, что "уровень не превысит 10" - это неправильно для массива размером 10:

char a[10];
a[10] = '\0';  // Bug, and "Buffer Overrun" warning.
0 голосов
/ 11 июня 2010

Вы действительно уверены? Я никогда не получал это предупреждение до сих пор. Итак, проверьте дважды.

В любом случае, вы можете использовать

#pragma warning( disable: 6386 )

директива препроцессора. Я обычно нажимаю и вставляю это в «стек прагм»

#pragma warning( push )
#pragma warning( disable : 6386 )
// Some code
#pragma warning( pop )

в соответствии с рекомендациями здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...