读书人

指针与数组赋值有关问题//.

发布时间: 2013-08-13 16:43:28 作者: rapoo

指针与数组赋值问题//................


typedef struct STU{
TCHAR id[16];
}ID_STU;
TCHAR Info[100] = "10ghi";
TCHAR converter_a[50];

obj.id = wtos(Info,2,converter_a);
error C2440: “=” : 无法从“TCHAR *”转换为“TCHAR [6]”
没有转换为数组类型,但有转换为数组的引用或指针

TCHAR* wtos(TCHAR* wc,int wlen,TCHAR* m_char)
{
memcpy(m_char,wc,wlen* sizeof(TCHAR));
m_char[wlen* sizeof(TCHAR)] = '\0';
return m_char;
}



[解决办法]
反过来是可以的,原因在于数组是指针常量,无法赋值,你可以用wstrcpy的方式。

引用:

typedef struct STU{
TCHAR id[16];
}ID_STU;
TCHAR Info[100] = "10ghi";
TCHAR converter_a[50];

obj.id = wtos(Info,2,converter_a);
error C2440: “=” : 无法从“TCHAR *”转换为“TCHAR [6]”
没有转换为数组类型,但有转换为数组的引用或指针

TCHAR* wtos(TCHAR* wc,int wlen,TCHAR* m_char)
{
memcpy(m_char,wc,wlen* sizeof(TCHAR));
m_char[wlen* sizeof(TCHAR)] = '\0';
return m_char;
}



[解决办法]
obj.id = wtos(Info,2,converter_a);
不要用=,用字符串拷贝函数

读书人网 >C++

热点推荐