DEBUG 2 函式的輸入引數要做適當的檢查

2022-03-11 21:06:46 字數 661 閱讀 6316

今天在除錯程式時發現,在單步執行的情況下,程式執行沒有問題,但是直接執行就會出問題。出問題的**如下

for(int col=0;col<=9;++col)

if(canmove(id,row,col,killid))

else

}

當killid值為-1時,呼叫

if(samecolor(id,killid))

很明顯,chess_man[killid].red變成了chess_man[-1].red,陣列下標越界,導致程式執行出現了問題。

修改後的samecolor()函式如下

/*

* 描述:判斷兩個棋子的顏色是否相同

* 輸入:待判斷的兩個棋子的id

* 輸出:無

* 返回值:false 不相同

* true 相同

* 其他:無

*/bool drawwidget::samecolor(int moveid, int killid)

if(chess_man[killid].red == chess_man[moveid].red)

else

}

C語言之函式名作為函式的輸入引數

1 函式位址如何傳遞 先說一次傳遞乙個函式的 我們先定義乙個函式 double add double x,double y 然後接著建立乙個函式指標 double pf double,double add 這裡 pf 的括號不能省,不然就不是函式指標了 我們現在有乙個函式 double calcul...

C語言main函式的引數含義及輸入

2012 04 06 17 23 22 分類 c c 舉報 字型大小訂閱 問題重現 c語言main函式有兩個引數,怎麼在vc6.0下給main函式傳遞引數,以及各引數的意義。帶有引數的main 函式頭格式為 void main int argc,char argv 或void main int ar...

scanf 函式的引數輸入型別不匹配問題

scanf 函式的引數輸入型別不匹配問題 這是我在csdn論壇上見到的問題,這個錯誤有時候會讓人莫名其妙。include main 當輸入a 回車 後,會直接跳過下面 個scanf語句,直接輸出為 123 t 原因 對於scanf d c a,c scanf語句執行時,首先試圖從緩衝區中讀入乙個 d...