看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《godman362 (青)》之銘言: 我提供我的寫法 你參考看看 話說void的也是型態的一種嗎~"~?? : struct Light : { : int Power; : void *LocalLink; : }; : struct TuneLight : { : int Power : void *LocalLink : }; 由於你的兩種結構的架構(也就是前面推文所講的存放方式) 是一模一樣的 所以顯示結果才會一樣 但如果兩者的struct結構不一樣就囧了 所以既然一樣不如宣告在一起 struct Light { int Power; struct Light *next; }; : int main() : { : Light A; : TuneLight B; 你這樣宣告有過嗎@.@ 應該不會過吧? 除非你typedef過.... : A.LocalLink = &B; 兩種不同型態的資料(包括struct的內容) 硬要存在一起會出問題 : cout <<A.LocalLink->Power; : return 0; : } int main() { struct Light A, B; A.Power = 1; A.next = NULL; B.Power = -1; B.next = NULL; A.next = &B; printf("%d\n", A.next->Power); // cout <<A.LocalLink->Power; return 0; } 有錯請糾正,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.232.63.167 ※ 編輯: liu2007 來自: 118.232.63.167 (09/26 00:26)
godman362:實際上兩種結構內容的東西是完全不同的 09/26 08:01
godman362:只是剛好我舉的例子不太恰當,讓您誤解了 09/26 08:01
godman362:如果結構內容相同,當然就是像您上面寫的一樣 09/26 08:01
godman362:這點是毫無疑問的 09/26 08:01
godman362:只是敝人還有一個問題想請教 09/26 08:01
godman362:就是說,當不同的結構串在一起時 09/26 08:02
godman362:我要如何判斷目前指標在哪一個結構上? 09/26 08:02