当前位置:  技术问答>linux和unix

strtol 在我的程序中有异常

    来源: 互联网  发布时间:2016-06-03

    本文导语:  tmp[] = 2 1 21  tmp[] = d f df  tmp[] = 6 e 6e  tmp[] = 5 a 5a  tmp[] = 0 9 9  tmp[] = e 4 e4  tmp[] = 9 1 91  tmp[] = d 0 d0  tmp[] = 1 4 4e  //从这里开始发生变化了,明明tmp[]={'1','4'},转换之后就成了 4e 了 test.c ...

tmp[] = 2 1
21 
tmp[] = d f
df 
tmp[] = 6 e
6e 
tmp[] = 5 a
5a 
tmp[] = 0 9

tmp[] = e 4
e4 
tmp[] = 9 1
91 
tmp[] = d 0
d0 
tmp[] = 1 4
4e 
//从这里开始发生变化了,明明tmp[]={'1','4'},转换之后就成了 4e 了
test.c  代码如下

#include "str_to_int_array.c"
#include "stdio.h"
int main()
{
int a = 0;
char *str = "10 f3 07 b7 12 4d 06 9b 31 c9 f0 00 87 43 1a 67 c0 7f 9e 2c 13 b3 90 14 d0 91 e4 09 5a 6e df 21";
guint8 *_str = NULL;
int str_len = str_to_int_array(str,&_str);
g_print("str out :n");
for (;a = '0') && (*(str_in + loop) = 'a') && (*(str_in + loop) = 'A') && (*(str_in + loop) = 0; loop-- )
{
if ( *(str_in + loop) != ' ' && *(str_in + loop - 1) != ' ' )
{
tmp[1] = *(str_in + loop-- );
tmp[0] = *(str_in + loop );
g_print ("tmp[] = %c %cn",tmp[0],tmp[1]);
size --;
*(*int_out + size) = ( guint8 )strtol(tmp,NULL,16);
g_print (" %x n" , *(*int_out + size));
}
}

return len;
}

|
貌似你做的太复杂了吧,简单一点儿就行了:


#include  

int byte2int(char ptr)
{
        if (ptr 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,