2013-07-02 43 views
0

我想将字符转换为无符号短,但我在m_cmdCode中获得的值始终是0.有些输入将是非常有用的。类型铸造字符无符号短短

int main() 
{ 
char *temp = new char[3]; 
memset(temp,1,3); 
unsigned short m_cmdCode = (unsigned short) atoi(temp); 
printf("%d",m_cmdCode); 
} 

//我想m_cmdCode等于111,是有可能做到这一点?

回答

6

您正在将temp的元素设置为整数值1。你想要的字符值'1'

memset(temp, '1', 3); 

请注意,您还需要NUL,终止tempatoi可靠地工作。

0

它来自你的memset,你把值为1的3个字节是不一样的东西比写

strcpy(temp, "111") 

也许我颠倒了的src和dest

+1

这将尝试写一个终止符,因此溢出分配的数组。 –