看板 C_and_CPP 關於我們 聯絡資訊
要用linked list 實做 pop的問題 要把pop出的資料放到data變數裡 typedef struct E { struct E *next; void *value; } E; bool pop( E **stack, void **data ){ E *elem; if (!(elem = *stack)) return false; *data = elem->value; *stack = elem->next; delete elem; return true; } 我的理解是: delete elem只會delete掉一層, 也就是 *value所指的資料是仍然存在 這也是為什麼可以把他assign給*data 給return回去 也就是說 就算delete掉E 的object還是會剩一堆value資料在記憶體那邊沒清掉 這樣對嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.111.1
tomap41017:嗯,看code我理解無誤的話,是跟您的解釋一樣的 12/24 23:10