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

指针与数组赋值问题//................typedef struct STU{TCHAR id[16]}ID_STUTCHAR Info[100] 10gh

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


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);
不要用=,用字符串拷贝函数