作者ric2k1 (Ric)
看板EE_DSnP
標題[情報] HW#8 Q&A
時間Sat Dec 22 23:34:43 2007
有同學在問:
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