→ ahwater01: 轉型 (void*) -> (int*) 04/27 17:52
→ baldhawk: 抱歉樓上大大 我很嫩 能說詳細一點嗎 thx 04/27 17:54
→ Jockey66666: void* malloc (size_t size); 04/27 17:56
→ baldhawk: sorry 我真笨我還是不懂 > 04/27 17:57
→ baldhawk: 是說為啥要加個void*在前面呢? 04/27 17:58
→ baldhawk: 另外 一定要加(int*)嗎? 04/27 17:58
推 CaptainH: C不用 C++要 04/27 18:02
→ bigpigbigpig: malloc 只傳回通用指標,必須自行強制轉型成 int* 04/27 18:06
→ baldhawk: 通用指標?原來還有這個東西?好奇這個跟其他指標不同在? 04/27 18:07
→ baldhawk: 為什麼C++一定要呢?這有甚麼原理可循嗎? 04/27 18:08
→ MOONRAKER: 通用指標就是void * 現在先背起來 等你長大就懂了 04/27 18:20
推 Debians: 語言本身就是這樣設計的啊~ 04/27 19:25
→ Debians: 長大就懂了是啥XD 04/27 19:25
→ azureblaze: 與其說通用,不如說"不明" 04/27 19:40
→ azureblaze: 因為要把指向不知是什麼的指標轉成指向int 04/27 19:41
→ azureblaze: 所以編譯器要求用強制轉型來確認你知道你在做什麼 04/27 19:41
→ baldhawk: 謝謝樓上前輩們的解說 我很擔心我問題太多太煩人了:p 04/27 20:17
→ MOONRAKER: 有的問題真的是學到後面才會懂 在那之前怎麼解釋也很難 04/27 21:38
→ MOONRAKER: 講清楚 而且往往聽過就忘 因為配合的知識還沒學到 04/27 21:39
→ MOONRAKER: 所以先記得malloc()的結果一定要轉型才能安全使用 04/27 21:46
→ MOONRAKER: 這樣就好了 其他東東太複雜或太tricky以後再學 04/27 21:49
→ baldhawk: 謝謝大家不厭其煩的解說 謝謝!! 04/28 00:51
→ bigpigbigpig: 補充:通用指標不能直接dereference,故需要強制轉型 05/01 12:05
推 overhead: 因為malloc很笨,只會回傳void*類型,要聰明的我們自己 05/07 22:21
→ overhead: 轉成我們要的類型,否則與我們自己宣告的指標變數類型 05/07 22:21
→ overhead: 不匹配 05/07 22:21