gpt4 book ai didi

c - 使用数组 wchar 时出错

转载 作者:行者123 更新时间:2023-11-30 17:49:16 24 4
gpt4 key购买 nike

我有一个 wchar 类型的变量(szDrive),现在我想要一个数组,它的元素的类型为 wchar。这是我的一些代码:

typedef struct array_wchar{
WCHAR array_char[5];
};
array_wchar array_driveName0[10];
int array_driveName_index0 =0;
WCHAR szDrive[5] = L" :\\";

但是当我写时:

for(int i=0;i<10;i++){
array_driveName1[i].array_char = szDrive;
}

有错误:错误 C2106:'=':左操作数必须是左值

有人可以解释一下原因并给出解决方案吗?请!

最佳答案

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

memcpy(array_driveName0[i].array_char, szDrive, sizeof(array_driveName0[i].array_char));

for (j = 0; j < 5; j++)
{
array_driveName0[i].array_char[j] = szDrive[j];
}

此外,您似乎引用了 array_driveName1,而您仅声明了 array_driveName0。

你的整体结构非常困惑。您有一个结构体数组,每个结构体仅包含一个 WCHAR 数组 - 为什么不只拥有一个数组数组并完全删除该结构体?

例如:

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]));

关于c - 使用数组 wchar 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com