看板 C_and_CPP 關於我們 聯絡資訊
我在 linux 上開發程式。工作上的電腦 64 位元 apt-get 了 cppcheck 套件來檢查自己程式的潛藏問題 印象中的程式是這樣 FILE *pF; pF = fopen("b.txt", "r"); char a[256]="", *recv = fgets(a, sizeof(a), pF); fclose(pF); 下了 cppcheck test.c 2> look 會出現 error: buf is accessed out of bounds 我回家用自己的電腦再K一次,又沒出現error了~"~,想請問各位打上這段程式碼 有出現類似的問題嗎? 要是有出現error,我是想問發生error的原因,因為我看了好幾次都不覺得有error 但 cppcheck 卻說有。然後我把 a[256]=""; 變成a[256]; 就沒出現error。 不太解,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.68.215.61 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1568472378.A.7EE.html
dces4212: 怎覺得你是在非宣告的地方打了a[256]="",才跳出越界存 09/15 12:05
dces4212: 取 09/15 12:05
gn00618777: 疑? char a[256]="", *recv = ... 這邊不就是宣告了? 09/15 20:59