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,可以这样做吗?

4

2 回答 2

7

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

memset(temp, '1', 3);

请注意,您还需要 NUL 终止temp才能atoi可靠地工作。

于 2013-07-02T15:52:26.483 回答
0

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

strcpy(temp, "111")

也许我颠倒了 src 和 dest

于 2013-07-02T15:56:05.637 回答