我有一些推式和彈出式代碼,我試圖理解,並有一個關於彈出功能的問題。流行功能解釋
這是節點結構:
struct NODE
{
int dataitem;
struct NODE *link;
};
這是流行音樂功能:
struct NODE* PopD(struct NODE *SP, int *Data)
{
struct NODE *temp;
temp = SP;
*Data = temp->dataitem;
temp = temp->link;
free(SP);
return temp;
}
所以我的問題是什麼呢這行做:*Data = temp->dataitem;
它爲什麼會走dataitem
值變成Data
當它不在以後的方法中使用?
它將鏈表頂節點數據值複製到'Data'指針參數中保存的地址。作爲獎勵,當您傳遞空列表(即SP中的NULL值)或空數據目標(Data中的NULL值)時,它也會調用未定義的行爲。看看你能否發現[區別](http://pastebin.com/yP54U5cg) – WhozCraig
@WhozCraig - 嘿,好! –