作者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
推 davidlue:既然是int,assign給他unsigned int的MAX一定會爆表的呀 11/18 18:13
推 will1220:原來UINT_MAX是這個意思啊...所以要改成INT_MAX囉~ 11/18 18:35