使用 Malloc 時無效轉換?
嘗試使用 malloc() 函式編譯程式碼時,可能會遇到「從void* 到 char*」錯誤。這個問題是由於涉及的資料類型不同而產生的。
理解錯誤
malloc() 函數在堆上分配記憶體並傳回 void* 類型的指標。該指標可以分配給任何指標類型的變量,但正確轉換它很重要。在 C 中,將 void* 賦值給 char* 需要明確轉換以確保相容性。
解決方案:型別轉換
要解決此錯誤,您可以對return 進行強制轉換在將malloc() 的值分配給foo 之前先將其值賦給char*。更正後的程式碼如下所示:
<code class="cpp">char *foo = (char*)malloc(1);</code>
透過使用 (char*) 轉換,您可以將 void* 指標明確轉換為 char* 指針,從而允許正確分配給 foo。
檔案類型註解
值得一提的是,使用 g 將程式碼編譯為 .cpp 檔案是合適的。 C 程式碼通常以 .cpp 副檔名儲存,並使用支援 C 語法的 g 編譯器進行編譯。
以上是以下是一些基於問題的標題,它們抓住了本文的精髓: * 為什麼在使用 Malloc 時會出現「從 void* 到 char* 的無效轉換」錯誤? * 如何修復\"的詳細內容。更多資訊請關注PHP中文網其他相關文章!