C语言运行中出错:
....
BYTE rxdata[2048];
....
short c=(short)(atoi((char *)rxdata[17]));
....
编译通过了,但是运行时到short那行就报错,到底是什么原因啊?
[解决办法]
short c=(short)(atoi((char *)&rxdata[17]));
[解决办法]
short c=(short)(atoi((char *)(rxdata+17)));
[解决办法]
short c = (short)atoi((char*)&rxdata[17]);
atoi遇到-或者0开始执行,直到\0或者非数字,你再查一下short的范围,有可能不会得到你想要的数。
[解决办法]
应该没有范围问题,范围问题不会报错了,最多警告。主要问题还是&用的不对,上面已经有更正代码了,我就不多说了。
[解决办法]
rxdata[17]越界.
[解决办法]
看 1, 2 楼
[解决办法]
结贴了,楼主
[解决办法]
atoi遇到数字类型开始执行,直到\0或者非数字,就是它不是只转换一个BYTE,连后面的也可能给转换了