作者geniusjazz (我個版開了!快來!)
看板EE_DSnP
標題[請益] bddCmd
時間Fri Jan 19 05:50:49 2007
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