看板 EE_DSnP 關於我們 聯絡資訊
有同學在問: 1. class Graph中的 *_root 是要在destructor中delete掉嗎? 理論上所有的 Vertex* 應該都要在 Graph's destructor delete 掉. 不過, 為了不要增加大家的負擔, 而且其實也不好測, 所以沒寫也沒關係. 反正這個題目只有畫一個圖, 畫晚後程式就結束了. 跳出 main() 之後所有的程式都會還給 computer, 不管有沒有 delete... (Note: "memory leak" 是指你的程式還在跑, 但是有一些已經沒有用記憶體沒有 delete 掉, 而造成程式的記憶體越用越多, 最後造成電腦記憶體不足) 2. Vertex **_toVertices要怎麼delete掉? 如一, 不 delete 掉就算了, 如果要做的完美一點而想將所有的 Vertex* delete 掉的話, 請注意不要重複 delete 相同的記憶體位置. 至於要 delete Vertex **_toVertices, 可用: for (size_t i = 0; i < _numToVertices; i++) delete _toVertices[i]; delete []_toVertices; 不過以上可能會重複 delete 相同的記憶體位置... 3. leave vertices 中的_numToVetices是0吧,那他的Vertex **_toVertices要怎 麼處理? 就將他的 _toVertices 設為 NULL. 4. adjMat[n][n]要在哪宣告?main中嗎?裡面的值是自己決定的嗎? 請參照 post #785. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.133.136