C ++将int转换为wchar_t *

时间:2018-04-28 13:00:17

标签: c++ int wchar-t

所以我一直在尝试将整数值转换为wchar_t *。这是我运行的测试,所以我可以尽可能地简化它。

int test=123;
wchar_t *testc[12][12];testc[0][0]=L"hello";
_itow(test,testc[0][0],10);
wcout<<testc[0][0];

这里的代码编译但也给了我厄运的无响应错误。 我理解的非常奇怪是为什么这个

int test=123;
wchar_t *testc[12][12];testc[0][0]=L"hello";
_itow(test,testc[1][0],10);
wcout<<testc[0][0]<<testc[1][0];

没有任何问题,并显示输出&#34; hello123&#34;正如预期的那样。

知道为什么会这样吗?

我的项目有一些类似于显示的第一个代码(除了wcout部分),因此我想了解他们为什么给我Not Responding状态。

1 个答案:

答案 0 :(得分:0)

您的代码的主要问题是没有为testc [1] [0]分配内存。 此外,最好使用标准的c ++函数,如std :: to_wstring而不是_itow。

以下是您的问题的示例代码:

int main()
{
  int test=123;
  wchar_t *testc[12][12];
  testc[0][0]=L"hello";
  testc[1][0] = new wchar_t[4];
  std::wstring temp  = std::to_wstring(123);
  for(int i=0;i<temp.length();i++)
  {
      testc[1][0][i] = temp[i];
  }
  wcout<<testc[0][0]<<testc[1][0];    
  return 0;
}

这只是示例代码,我在您的程序中假设您正在处理内存分配和释放