2014-09-12 54 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。但是我沒有用Cppcheck重現這個FP。

+1

您可以報告您在Cppcheck問題跟蹤器(http://trac.cppcheck.net)中看到的任何Cppcheck-FP,修復FP報告是高優先級。報告中應包含重現FP的最小代碼示例。 – 2014-09-16 08:35:22