当前位置: 技术问答>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
9
tmp[] = e 4
e4
tmp[] = 9 1
91
tmp[] = d 0
d0
tmp[] = 1 4
4e
//从这里开始发生变化了,明明tmp[]={'1','4'},转换之后就成了 4e 了
test.c 代码如下
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 代码如下
#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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
©2012-2021,