作者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)
1F:推 eeturtur:int argument[2]的array里只能有两个elements 01/19 07:03
2F:→ eeturtur:你的for loop却给了三个 argument[0]、[1]、[2] 01/19 07:04
3F:推 geniusjazz:对不起实在太蠢了orz 01/19 11:17
4F:→ geniusjazz:可是还是觉得很奇怪~那应该在if里面就出错啊@@ 01/19 11:17
5F:→ geniusjazz:为什麽是在return illegal command那边才错呢!? 01/19 11:18
6F:推 vinlinch:我觉得可能是前两个 argument [0] [1] 都存在 01/19 12:54
7F:→ vinlinch:当跑到 argument[2]时 就crash了 01/19 12:55