typedef struct {
char name [25] ;
char breed [25] ;
int age ;
struct animal *next ;
} animal ;
animal *ptr1 , *ptr2 , *prior ;
ptr1 = (animal*)malloc(sizeof (animal)) ;
strcpy ((*ptr1).name , "General") ;
strcpy ((*ptr1).breed , "Foreign breed") ;
(*ptr1).age = 8 ;
(*ptr1).next = NULL ;
prior =ptr1 ;
printf ("%s\n" , (*prior).name) ;
printf ("%s\n" , (*prior).breed) ;
printf ("%d\n" , (*prior).age) ;
printf ("%p\n" , (*prior).next) ;
free (ptr1) ;
ptr1 = (animal*)malloc(sizeof (animal)) ;
strcpy ((*ptr1).name , "General 1") ;
strcpy ((*ptr1).breed , "Abroad breed") ;
(*ptr1).age = 24 ;
(*ptr1).next = NULL ;
(*prior).next = ptr1 ;
以下是繪製鏈接列表的代碼。 整個代碼時執行示出了在最後一行的錯誤:鏈接列表語法
在函數「主」: 警告:從兼容的指針類型[默認啓用]
如果您指出_where_出現錯誤,它可能會有所幫助。由於這是一個編譯錯誤(即不是程序錯誤,而是編譯器關於代碼的某些問題的錯誤),錯誤消息包含一個行號。今後,請發佈_all_消息,完成並未經編輯。 –
請注意,在最後一行之前是指向先前釋放的內存區域;這可能會導致程序崩潰 – Jack
此外,爲什麼使用例如'(* ptr1).next'而不是更普通的'ptr1-> next'? –