[作業] 雙班計程11-1

看板b99902HW作者 (建)時間13年前 (2010/12/25 18:17), 編輯推噓6(604)
留言10則, 6人參與, 最新討論串1/1
我部分的code struct node{ char name[20]; struct node *prev; struct node *next; } ; typedef struct node NODE; typedef NODE *NODEPtr; void insert(NODEPtr *head, NODEPtr *tail, char where, int index, char name[20]){ NODEPtr newptr; newptr=malloc(sizeof(NODE));<-------這邊compile過不了= = 出現invalid coversion 'void*' to 'NODE*'的錯誤訊息 誰可以告訴我為什麼= =.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.102.126

12/25 18:20, , 1F
newptr=(NODE *)malloc(sizeof(NODE));這樣
12/25 18:20, 1F

12/25 18:23, , 2F
感謝!!!!,可是為什麼阿0.0..投影片都沒這樣用耶
12/25 18:23, 2F

12/25 18:42, , 3F
據神秘人士表示:似乎是跟用C與C++有關係唷
12/25 18:42, 3F

12/25 18:43, , 4F
其實不是很確定 有沒有真強者要解答QQ
12/25 18:43, 4F

12/25 19:05, , 5F
據說那是cast (?)
12/25 19:05, 5F

12/25 20:12, , 6F
就是要把malloc()回傳的指標轉成NODE*型態呀
12/25 20:12, 6F

12/25 20:13, , 7F
不然malloc()自己傳回來的是void*型態的指標
12/25 20:13, 7F

12/25 21:52, , 8F
因為你副檔名是cpp的話只接受new和delete
12/25 21:52, 8F

12/25 22:01, , 9F
更正...是C++和C不一樣...
12/25 22:01, 9F

12/25 22:02, , 10F
不過如果用C++通常就是new就好了
12/25 22:02, 10F
文章代碼(AID): #1D5SIz9j (b99902HW)