首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言运行中出错:该怎么解决

2012-02-11 
C语言运行中出错:....BYTErxdata[2048]....shortc(short)(atoi((char*)rxdata[17]))....编译通过了,但

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,连后面的也可能给转换了

热点排行