2014-09-18 83 views
0

我有函數應該將char *轉換爲wchar_ *。但它不 - 我只有3個空格的奇怪字符串。那是因爲GetWC返回指向不存在的字符串的指針嗎?函數返回指針爲空?

const wchar_t *GetWC(const char *c) 
{ 
    size_t cSize = strlen(c)+1; 
    std::wstring wc(cSize, L'#'); 
    mbstowcs(&wc[0], c, cSize); 
    return wc.c_str(); 
} 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    char *g ="aaa"; 

    const wchar_t* f= GetWC(g); 
    wcout<<f; 

    return 0; 
} 
+0

按值返回'std :: wstring',以保留其值。任何真正需要指針的人都可以自己調用'c_str()'。 – 2014-09-18 16:03:14

回答

1

wc.c_str()GetWC返回後無效。 wc是本地變量