[問題] 這題是否有問題
新手想請教看到的一個問題:
鏈結陣列:
struct data {
int value;
datatype *pt;
};
void deletept(struct data *dataptr)
{
struct data *temp;
temp = dataptr->pt;
*dataptr = *(dataptr->pt);
free(temp);
}
我想問的是為什麼這邊*dataptr = *(dataptr->pt);
這樣不就只是很單純的把下一個值的value搬過來而已嗎?
我的理解裡*是指標,可以將記憶體中的值取出來
而link list 的delete,一般是delete 傳入node的next node,
應該是用*dataptr->pt=*dataptr->pt->pt才對,
而這題只是單純的把*dataptr(取出data物件)後又把*(dataptr->pt)assign給他,
然後再free dataptr->pt,這樣是變成砍node 本身?
請問我的理解有錯嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.74.180.10
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1398227248.A.F77.html
※ 編輯: siaco (203.74.180.10), 04/23/2014 13:38:34
→
04/23 14:00, , 1F
04/23 14:00, 1F
→
04/23 14:11, , 2F
04/23 14:11, 2F
→
04/23 14:12, , 3F
04/23 14:12, 3F
→
04/23 14:39, , 4F
04/23 14:39, 4F
→
04/23 14:39, , 5F
04/23 14:39, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章