Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 键入cast char到Unsigned short_C++ - Fatal编程技术网

C++ 键入cast char到Unsigned short

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

我试图将字符转换为无符号短字符,但在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'

memset(temp, '1', 3);

请注意,您还需要NUL terminate
temp
,以使
atoi
可靠工作。

它来自您的memset,您将3个字节的值设为1。这与写入不同

strcpy(temp, "111")

可能我反转了src和dest

这将尝试写入终止符,从而使分配的数组溢出。