2014-09-12 10 views
0

Инструмент анализа статического кода cppcheck сообщил о серьезной ошибке в коде ниже: Я не знаю, в чем проблема.«Буфер доступен за пределами границ» сообщается cppcheck

 #define NUM_UPDATE_COUNT 3 
     #define MAX_NUM_CH_1LINE 27 

     wchar_t m_cCnt_Buf[NUM_UPDATE_COUNT][MAX_NUM_CH_1LINE]; 

     Init_PushPt(); 

     memset((char *)&m_cCnt_Buf[1], 0x20, sizeof(m_cCnt_Buf[1])); /* Buffer is accessed out of bounds: m_cCnt_Buf */ 
     memset((char *)&m_cCnt_Buf[2], 0x20, sizeof(m_cCnt_Buf[2])); /* Buffer is accessed out of bounds: m_cCnt_Buf */    
     m_cCnt_Buf[1][2] = '0'; 
     m_cCnt_Buf[2][8] = '0'; 

В коде выше не было ничего плохого. Любые идеи, почему они берутся и как это исправить? Заранее спасибо.

ответ

0

Я разработчик Cppcheck.

Интересно. Для меня это похоже на FP. Однако я не могу воспроизвести этот FP с помощью Cppcheck.

+1

Вы можете сообщить любой Cppcheck-FP, который вы видите в трекере проблемы с Cppcheck (http://trac.cppcheck.net), при этом исправление отчетов FP имеет высокий приоритет. Минимальный пример кода, который воспроизводит FP, должен быть включен в отчет. –