首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问wchar_t*的wchar_t?

如何访问wchar_t*的wchar_t?
EN

Stack Overflow用户
提问于 2010-12-05 16:34:07
回答 4查看 2.2K关注 0票数 1

这是我的代码:

代码语言:javascript
复制
   wchar_t wbuffer[512];
   wchar_t* wc = (wchar_t*) malloc(buffer_size);
   int buflen = 0;

// ... stuff


// inside the while loop
   wbuffer[buflen] = (wchar_t)wc;

这有什么问题呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-05 16:45:16

在你的循环中取消引用wc。

代码语言:javascript
复制
wbuffer[buflen] = *wc;
票数 1
EN

Stack Overflow用户

发布于 2010-12-05 17:02:08

首先,什么是buffer_size?是sizeof(wchar_t)的倍数吗?如果没有,那就去做吧!

其次,wc是一个指向wchar_t的指针,这意味着你可以像wc[index]一样访问它的wchar_t,其中index的最大值可以是buffer_size/size(wchar_t) - 1。你的代码应该是这样的:

代码语言:javascript
复制
//this 'if' is needed if you don't have any idea of what buffer_size could be!
if (buffer_size % sizeof(wchar_t))
       buffer_size = (buffer_size / sizeof(wchar_t) + 1) * sizeof(wchar_t);

wchar_t wbuffer[512];
wchar_t* wc = (wchar_t*) malloc(buffer_size);
int buflen = 0;
int maxindex = buffer_size/ sizeof(wchar_t) - 1;
int index = 0;
while ( index <= maxindex)
{
   //use wc[index]; here
    index++; //last line
}
票数 1
EN

Stack Overflow用户

发布于 2010-12-05 16:45:34

现在还不清楚你想做什么。

  1. wbuffer is uninitialized
  2. you're正在尝试将指向wchar_t的指针存储到wchar_t

的数组中

请解释一下这个程序的目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4357997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档