[問題] 關於cppcheck用來檢查程式的 error

作者: gn00618777 (非常念舊)   2019-09-14 22:46:15
我在 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。
不太解,謝謝。
作者: dces4212 (flawless)   2019-09-15 12:05:00
怎覺得你是在非宣告的地方打了a[256]="",才跳出越界存取
作者: gn00618777 (非常念舊)   2019-09-15 20:59:00
疑? char a[256]="", *recv = ... 這邊不就是宣告了?

Links booklink

Contact Us: admin [ a t ] ucptt.com