首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-08-13 
指针与数组赋值问题//................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);
不要用=,用字符串拷贝函数

热点排行