[問題] delete a->b 的意思?
遇到的問題: (題意請描述清楚)
delete a->b
的意思是把a中指向b的指標拿掉
還是把整個b解構掉?
希望得到的正確結果:
我希望要~b
但是b已經沒有名字了
所以沒有辦法直接~b_name
程式跑出來的錯誤結果:
該記憶體不能為"read"
但我也不能確定真的是這邊的問題
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有問題的code: (請善用置底文標色功能)
bedelete是一個布林
當值為true時代表該物件要刪除
我有一個雙向串列
ing是目前正在執行的
head和tail是頭和尾
left和right是左和右
if(ing->left->bedelete){
ing->left->left->right=ing;
ing->left=ing->left->left;
delete ing->left;
head=ing;
tail=ing->left;
debug=true;
}
補充說明:
這邊是新增物件到雙向串列的code
object *b=new bomb(x,y,maxfire);
tail->right=b;
b->left=tail;
tail=b;
head->left=b;
b->right=head;
感謝
--
我誕生在世上察覺到終究只是模仿著人類明知如此我依然繼續歌唱著永恆的命運VOCALOID
縱使那是將存在的曲子重新仿照著翻唱的玩具而已也沒關係的決意咬著蔥仰望著天空揮灑
淚水宣告終結沉睡在顯示器之中這裡一定是資源回收筒吧再不久就連記憶也會消逝而去了
吧但是呢只有你我是絕對不會忘記的在快樂的時光之中刻印而下蔥的味道如今要是還能記
得就好了我要歌唱著在最後只獻給你希望你能聽見的歌曲雖然許下了想要唱更多歌的願望
但是那算是奢侈的願望吧在此要分別了我的思念全部虛空消失還原成0與1故事畫下了句點
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.13.127.91
→
02/20 16:12, , 1F
02/20 16:12, 1F
→
02/20 16:13, , 2F
02/20 16:13, 2F
→
02/20 16:31, , 3F
02/20 16:31, 3F
→
02/20 16:35, , 4F
02/20 16:35, 4F
那這樣呢?
object *temp;
if(ing->left->bedelete){
temp=ing->left;
ing->left->left->right=ing;
ing->left=ing->left->left;
delete temp;
head=ing;
tail=ing->left;
}
跑起來感覺上還是沒有刪到耶
※ 編輯: hirabbitt 來自: 163.13.127.91 (02/20 16:53)
→
02/20 16:55, , 5F
02/20 16:55, 5F
推
02/22 11:50, , 6F
02/22 11:50, 6F
→
02/22 13:05, , 7F
02/22 13:05, 7F
→
02/22 13:05, , 8F
02/22 13:05, 8F