在Circuit::Parser::getString(char* const str) const的function中
如果missing argument的時候
傳入的str會是一個0
這個時候
如果執行 assert(!isWhite(*str)); 的話
就會有"程式記憶體區段錯誤"的發生
是不是在 assert(!isWhite(*str)); 之前
應該要加一個這樣的判斷式 在assert(!isWhite(*str)); 之前
if(str == 0)
return 0;
另一方面
在原本的ParseInput(、ParseOutput、ParseOneGate)中
本來的
// if nothing after ".output"
if (*str == 0)
return _parser.parseError(MISSING_ARG, ".output");
在str前的* 就應該要去掉了
不知道同學們有沒有遇到這樣的問題??
如果有錯誤
還麻煩大家多多指教m(_ _)m
---
PS.這個問題的發現和解決 是由某位大三很強又很發的學弟找到的
只可惜他太害羞了 所以由我來代PO.....XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.242