看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《rockwalking (技安)》之銘言: : 目前C17.cir執行沒問題 : 但碰到larger的檔案就出錯 : 以下是兩筆對照 : file is open : option is:2 : .cir : set name :C17 : option is:6 : .input : .input find : makepair string is :1GAT : CirGate constructor 1GATis: 0 : creat a PIobj : ... : file is open : option is:2 : .cir : set name :C499 : 程式記憶體區段錯誤 : 我完全找不到哪裡出錯 他們第一行到第二行格式都一樣阿 : 然後我試著把C499 .input 後面刪掉數個input 就可以執行 請問這到底是什麼問題? 還是發生同樣問題 在creat Piobj時候就crush 檢查data member確實都有initialize #include <cassert> class CirGate; using namespace std; class CirGate { public: CirGate(const string& a , size_t b ):_name(a),_mark(false),_faninList(b) {cout<<"CirGate constructor "<<_name<<"is: "<<b<<endl;} virtual ~CirGate() {} void printSize() {cout<<_faninList.size()<<endl;} void printName() const {cout<<_name<<endl;} size_t getMark() {return _mark;} void dfsTraversal (vector<CirGate*>& dfsList) { cout<<"in CirGate's dfsTraversal :"; printName(); vector<CirGate*>::iterator mi; for(mi = _faninList.begin();mi!=_faninList.end();++mi) {(*mi)->printName(); if(!((*mi)->isMarked())) { (*mi)->setMark(); (*mi)->dfsTraversal(dfsList); } } dfsList.push_back(this); } bool isMarked() {return _mark;} void setMark() {_mark= true;} void resetMark() {_mark = false;} bool setFanIn(CirGate* pos) {cout<<_name<<"'s _faninList add ";pos->printName();_faninList.push_back(pos);} private: string _name; vector<CirGate*> _faninList; bool _mark; }; class CirPiGate: public CirGate { public: CirPiGate(const string& name = " ",size_t b = 0):CirGate(name,b){cout<<"creat a Piobj"<<endl;} ~CirPiGate() {} }; .... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.25.110
ric2k1:用 gdb or ddd 看看 crash 在哪裡... 06/06 16:51
rockwalking:好不想開阿ˊˋ 也只好這樣了 06/06 17:09