精華區beta EE_DSnP 關於我們 聯絡資訊
vector<string> options; if (!CmdExec::lexOptions(option, options, 3)) return CMD_EXEC_ERROR; int argument[2]; for (int i = 0 ; i < 3 ; i ++){ if (!myStr2Int(options[i], argument[i]) || (argument[i] <= 0) ) return return CmdExec::errorOption(CMD_OPT_ILLEGAL, options[i]); } 這是我再BResetCmd裡面寫的 可是測試結果非常奇怪...||| bdd> breset f 3 3 Illegal Option (f) bdd> breset 3 f 3 Illegal Option (f) bdd> breset 3 3 f Illegal Option (記憶體區段錯誤 我也試過直接把options[0],[1],[2]都output出來看看,也都沒錯。 可是就會出現上面的情況@@ 請各位高手幫幫忙...||| -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234 ※ 編輯: geniusjazz 來自: 140.112.4.234 (01/19 05:51)
eeturtur:int argument[2]的array裡只能有兩個elements 01/19 07:03
eeturtur:你的for loop卻給了三個 argument[0]、[1]、[2] 01/19 07:04
geniusjazz:對不起實在太蠢了orz 01/19 11:17
geniusjazz:可是還是覺得很奇怪~那應該在if裡面就出錯啊@@ 01/19 11:17
geniusjazz:為什麼是在return illegal command那邊才錯呢!? 01/19 11:18
vinlinch:我覺得可能是前兩個 argument [0] [1] 都存在 01/19 12:54
vinlinch:當跑到 argument[2]時 就crash了 01/19 12:55