这是我的代码:
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;这有什么问题呢?
发布于 2010-12-05 16:45:16
在你的循环中取消引用wc。
wbuffer[buflen] = *wc;发布于 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。你的代码应该是这样的:
//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
}发布于 2010-12-05 16:45:34
现在还不清楚你想做什么。
的数组中
请解释一下这个程序的目的。
https://stackoverflow.com/questions/4357997
复制相似问题