[問題] 執行程式到一半 發生錯誤..(撲克牌)

看板C_and_CPP (C/C++)作者 (★GY大★)時間16年前 (2010/05/25 17:34), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
剛剛小弟在執行撲克牌牌組判斷的程式時,執行到一半,發生了錯誤。 在之前Compiler也沒有問題,執行也沒error或是warning 但就在我輸入6次數字後,它跑出了 XXXX應用程式錯誤 XXXX指令參考的XXXX記憶體該記憶體不能為read 有終止程式或是進行偵錯 當然小弟按進行偵錯...它有個黃色的箭頭指向Flush(判斷是否為同花色) 是表示我那一行寫錯嗎? 可是當我Compiler時不是沒錯嗎? 怎麼會執行"幾次"之後,發生了錯誤 (囧 請教一下板上的高手 謝謝!! (不知道這能不能PO在這裡問> <'') 附上一下那部份的程式碼 flush( hand, suit, face ); flush的函式如下 void flush(int hand[][2], char *suit[], char *face[] ) { int counter[6]={0}; int r,p; for(r=0;r<5;r++) counter[hand[r][2]]++; for(p=0;p<6;p++) if(counter[p]==5) printf("The hand contains a flush of %s\n",suit[p]); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.64.156.16

05/25 17:37, , 1F
int hand[][2]; counter[hand[r][2]]++; 越界?
05/25 17:37, 1F

05/25 17:41, , 2F
啊...看到了...所以改成1就OK了嗎? 剛剛改成1跑的就很順
05/25 17:41, 2F

05/25 17:41, , 3F
先感謝J大!!
05/25 17:41, 3F

05/25 17:42, , 4F
補充一下,counter那裡改成1就好了
05/25 17:42, 4F

05/25 18:51, , 5F
compile沒錯不代表run-time不會錯阿 XD
05/25 18:51, 5F
※ 編輯: ggyy940 來自: 203.67.186.208 (05/25 21:55)

05/25 21:55, , 6F
修正一下~2應該改成0
05/25 21:55, 6F
文章代碼(AID): #1B-vcKnz (C_and_CPP)
文章代碼(AID): #1B-vcKnz (C_and_CPP)