首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数组wchar时出错

使用数组wchar时出错
EN

Stack Overflow用户
提问于 2013-07-31 11:28:55
回答 1查看 69关注 0票数 0

我有一个带有wchar (szDrive)类型的变量,现在我想要一个数组,并且它的元素具有wchar类型。以下是我的一些代码:

代码语言:javascript
复制
typedef struct array_wchar{
WCHAR array_char[5];
};
array_wchar array_driveName0[10];
int array_driveName_index0 =0;
WCHAR szDrive[5] = L" :\\";

但当我写到:

代码语言:javascript
复制
for(int i=0;i<10;i++){
    array_driveName1[i].array_char = szDrive;
}

它有一个错误:error C2106: '=' : left operand must be l-value

谁能给我解释一下原因并给出解决办法吗?求你了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-31 11:38:23

不能直接分配给这样的数组。您需要使用memcpy / strcpy或为单个元素分配:

代码语言:javascript
复制
memcpy(array_driveName0[i].array_char, szDrive, sizeof(array_driveName0[i].array_char));

代码语言:javascript
复制
for (j = 0; j < 5; j++)
{
    array_driveName0[i].array_char[j] = szDrive[j];
}

而且,您似乎在引用只声明了array_driveName1的array_driveName0。

你的整体结构很混乱。您有一个结构数组,每个结构只包含一个WCHAR数组--为什么不只是拥有一个数组并完全删除这个结构呢?

例如:

代码语言:javascript
复制
typedef WCHAR array_char_t[5];
array_char_t array_driveName0[10];
WCHAR szDrive[5] = L" :\\";

memcpy(array_driveName0[i], szDrive, sizeof(array_driveName0[i]));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17969087

复制
相关文章

相似问题

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