如何將char 轉換為wchar_t 以進行Unicode 集成
問題:問題:
問題:問題:問題:問題:
問題:<code class="cpp">const wchar_t *GetWC(const char *c) { const size_t cSize = strlen(c)+1; wchar_t wc[cSize]; mbstowcs (wc, c, cSize); return wc; }</code>問題:
開發人員可能會遇到在Unicode 應用程式中將char 轉換為wchar_t 的問題。以下程式碼範例說明了一個常見錯誤:
<code class="cpp">const wchar_t *GetWC(const char *c) { const size_t cSize = strlen(c)+1; wchar_t* wc = new wchar_t[cSize]; mbstowcs (wc, c, cSize); return wc; }</code>答案:
出現此問題的原因是wc 是局部變量,在函數返回時會被釋放。這會導致未定義的行為。正確的做法是使用 new 動態分配 wc 並確保調用代碼釋放內存:
注意:調用代碼必須負責釋放分配的內存,以避免內存洩漏。以上是為什麼在我的 Unicode 應用程式中將 char 轉換為 wchar_t 會導致未定義的行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!