※ 引述《Melloto (宜蘭宜蘭><"")》之銘言:
: 在RecycleList的destructor裡面看到 reset();
: 但是reset() 裡面又有 delete toDel;
: 那這樣會不會是無窮迴圈阿= =a
: 從頭影片上看來
: 似乎reset都是在delete他們包住的東西
: 好像沒看到會delete自己這個class的
: ----
: 如果是我沒有把整個code看完造成的愚蠢問題
: 請原諒我><""
剛剛才發現忘記回答這個問題...
你說的沒錯, 我的確是寫錯了... :P
這樣寫雖然不會造成無窮回圈, 但是會有 doubly freeing memory 的問題...
MemRecycleList<T>::reset() 應改成 ---
void reset() {
if (_nextList) delete _nextList;
_first = 0; _nextList = 0;
}
不過因為有點晚發現, 所以我們的測資會避免測到這樣的地方...
想 update hw4.tgz MemRecycleList<T>::reset()的人可以中午過後 download
(只有 MemRecycleList<T>::reset() 的修改)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.240