我有點困惑,我將如何去傳遞引用雙指針,我甚至不知道這是我正在尋找什麼。通過引用雙指針 - 混淆
基本上我遇到的問題是使用雙重排序的鏈接列表。我有一個函數,它接受一個指向我的歌曲節點的指針,按照他們的評分順序重新排列歌曲。如果評級收到零,則會通過此功能確保用戶提供介於1和5之間的有效評分,並將其重新插入到鏈接列表中。
的部分,我有點困惑是變化傳遞到第一個函數像這樣頭的初始值:
songNode* head = NULL;
songNode* tail = NULL;
displaySongs(head);
printf("\n\n");
reassignSongs(head, tail);
的reassignSongs函數需要一個指向這些歌曲節點..在reassignSongs函數中,它調用一個函數,該函數需要一個指向這些頭部和尾部變量的雙指針。
addSongToList(artist, title, rating, &head, &tail);
int addSongToList(char* artist, char* title, int rating, songNode** head, songNode** tail)
此函數操作頭指針,當我回到主函數頭變量仍是怎麼回事,因爲引用這個變量沒有改變..
我真的只是想知道這通常是如何處理的?你有沒有進入三分球?四重指針?拿一個指針的地址?
你在尋找指針的指針嗎? '重新分配歌曲(&head,&tail);'帶有'void reassignSongs(songNode ** head,songNode ** tail)'的定義'' – AntonH
這是我應該怎麼做的方式嗎?我唯一的問題是當我這樣做時,我該如何執行我的其他函數調用?我傳遞的是取消引用的雙指針的地址嗎?對我而言,這看起來很奇怪我不確定這是否是要走的路 –
如果您想要交換指針頭部和尾部'通過函數,然後我會做一個函數,你傳遞指針的地址,使他們指向指針。[This SO question](http://stackoverflow.com/questions/897366/how-do -pointer-to-pointers-work-in-c)對如何使用它們有一個解釋 – AntonH