作者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