C++ 键入cast char到Unsigned short
我试图将字符转换为无符号短字符,但在m_cmdCode中得到的值始终为0。一些意见会很有帮助C++ 键入cast char到Unsigned short,c++,C++,我试图将字符转换为无符号短字符,但在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,是否可以这样做?您正在将temp的元素设置为整数值1。您需要字符值'1': m
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,是否可以这样做?您正在将
temp
的元素设置为整数值1
。您需要字符值'1'
:
memset(temp, '1', 3);
请注意,您还需要NUL terminate
temp
,以使atoi
可靠工作。它来自您的memset,您将3个字节的值设为1。这与写入不同
strcpy(temp, "111")
可能我反转了src和dest这将尝试写入终止符,从而使分配的数组溢出。