Прежде всего, что такое buffer_size
?Это кратно sizeof(wchar_t)
?Если нет, сделайте это!
Во-вторых, wc
- указатель на wchar_t
, это означает, что вы можете получить к нему wchar_t
как wc[index]
, где максимальное значение 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
}