菜鸟求助:字符串转换为无符号整型

xiaomuyoo 2011-06-15 11:30:39
我写的代码这样:

typedef struct{
unsigned int sign1;
unsigned int sign2;
int code;
unsigned int other;
} Sdict_snode;

.......

Sdict_snode *my_node;

.......
sign1 = "829387582";
sign2 = "586133491";
my_node->sign1 = strtoul(sign1,NULL,10);
my_node->sign1 = strtoul(sign1,NULL,10);
......


现在到了
my_node->sign1 = strtoul(sign1,NULL,10);
这句就出core了,实在不解,望高手解答呀~谢谢!
...全文
267 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaomuyoo 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dizuo 的回复:]

http://www.cplusplus.com/reference/clibrary/cstdlib/strtoul/
[/Quote]这个我看过了的~ 也很谢谢~~
如此美丽的你 2011-06-15
  • 打赏
  • 举报
回复
该结贴了!!!
如此美丽的你 2011-06-15
  • 打赏
  • 举报
回复
楼主加油!!!!!!!!!
xiaomuyoo 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 linfengc 的回复:]

引用 10 楼 hu7324829 的回复:

sign1,sign2 需要是char [],不然就是常指针了!!

常指针没问题。
[/Quote]
啊 我明白了~ 谢谢!
xiaomuyoo 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 linfengc 的回复:]

引用 6 楼 xiaomuyoo 的回复:

引用 3 楼 linfengc 的回复:

Sdict_snode *my_node = new Sdict_snode;//malloc


空指针引用当然会core了。
my_node->sign1 = strtoul(sign1,NULL,10);

可是,我写的C代码啊……



Sdict_snode my_no……
[/Quote]

嗯 加上 这句就好了
Sdict_snode *my_node = (Sdict_snode*)malloc(sizeof(Sdict_snode));

可是,能告诉我下为什么吗?thx~~~~
linfengc 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hu7324829 的回复:]

sign1,sign2 需要是char [],不然就是常指针了!!
[/Quote]
常指针没问题。
linfengc 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xiaomuyoo 的回复:]

引用 3 楼 linfengc 的回复:

Sdict_snode *my_node = new Sdict_snode;//malloc


空指针引用当然会core了。
my_node->sign1 = strtoul(sign1,NULL,10);

可是,我写的C代码啊……
[/Quote]


Sdict_snode my_node;

char* sign1 = "829387582";
char* sign2 = "586133491";
my_node.sign1 = strtoul(sign1,NULL,10);
my_node.sign2 = strtoul(sign2,NULL,10);


不用指针,这样没问题。

用指针:

Sdict_snode *my_node = (Sdict_snode*)malloc(sizeof(Sdict_snode));

hu7324829 2011-06-15
  • 打赏
  • 举报
回复
sign1,sign2 需要是char [],不然就是常指针了!!
xiaomuyoo 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 linfengc 的回复:]

这是个char* sign1 = "829387582"; 吧。
[/Quote]
是的
在这句之前有定义 :

char *sign1;
char *sign2;
xiaomuyoo 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 linfengc 的回复:]

这是个char* sign1 = "829387582"; 吧。
[/Quote]嗯 是的 忘了加上了 我给加上
linfengc 2011-06-15
  • 打赏
  • 举报
回复
这是个char* sign1 = "829387582"; 吧。

xiaomuyoo 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 linfengc 的回复:]

Sdict_snode *my_node = new Sdict_snode;//malloc


空指针引用当然会core了。
my_node->sign1 = strtoul(sign1,NULL,10);
[/Quote]
可是,我写的C代码啊……
linfengc 2011-06-15
  • 打赏
  • 举报
回复
strtoul的使用本身没有问题。
xiaomuyoo 2011-06-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 linfengc 的回复:]

sign1是个啥类型
[/Quote]
unsigned int 的
linfengc 2011-06-15
  • 打赏
  • 举报
回复
Sdict_snode *my_node = new Sdict_snode;//malloc


空指针引用当然会core了。
my_node->sign1 = strtoul(sign1,NULL,10);





linfengc 2011-06-15
  • 打赏
  • 举报
回复
sign1是个啥类型

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧