作者will1220 (小崴)
看板EE_DSnP
标题[问题] 关於作业三的问题
时间Sat Nov 18 17:21:05 2006
请问一在calcCmd.cpp的MvarCmd::exec(const string& option)里面
这里是老师已经写好的code,其中有一行是
CmdExec::lexOptions(option, options, 2);
是不是应该要改成
if(!CmdExec::lexOptions(option, options, 2))....类似这样
若是没有改的话,当我执行modCalc时
mcalc> mvar a
Missing option!!
然後会显示记忆体区段错误并且跳出...
但如果我把这行改成:
if(!CmdExec::lexOptions(option, options, 2)) return CMD_EXEC_DONE;
结果就正常了...
另外一个问题是在calcModNum.cpp中
我将_modulus initialize成
int ModNum::_modulus=UINT_MAX; 照理来说UINT_MAX是个很大的整数
可是当我在下面的member function中用到_modulus的时候
_modulus并不是UINT_MAX而是-1,
例如说当我写n._num=n._num%_modulus; 在某个function中
他的动作是把n._num=0(假设_modulus还没有被设定新的值)
请问是为什麽阿?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.244.241
1F:推 davidlue:既然是int,assign给他unsigned int的MAX一定会爆表的呀 11/18 18:13
2F:推 will1220:原来UINT_MAX是这个意思啊...所以要改成INT_MAX罗~ 11/18 18:35