sscanf的问题

schunter 2010-03-26 09:57:45
#include <stdio.h>

typedef short U16;
typedef unsigned char U8;

typedef struct
{ U16 n;
U16 len;
U8 c[12];
}my_struct;

int main(my_struct *p)
{
char *ll = "20";
sscanf (ll, "%d", &(p->len));
printf("s=%d\n",p->len);
}

程序就这么简单,为何输出不是预期的20,变成了“Null pointer assignment".谁能给解释一下。还有到底该怎样写才能得到预期的结果?
...全文
85 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
罗耗子 2010-03-26
  • 打赏
  • 举报
回复
main函数的参数也可以自由定义?
学习了,^_^
jbz001 2010-03-26
  • 打赏
  • 举报
回复
你的代码有很多神奇的地方
xiuxianshen 2010-03-26
  • 打赏
  • 举报
回复
建议看看main函数与一般函数的区别,养成良好的编程习惯
http://student.csdn.net/space.php?uid=40542&do=blog&id=15315
ZFZF294990051 2010-03-26
  • 打赏
  • 举报
回复
int main(my_struct *p)
{
char *ll = "20";
sscanf (ll, "%d", &(p->len));
printf("s=%d\n",p->len);
}
指针p没有分配空间。不知道知道哪去了。
cy330206 2010-03-26
  • 打赏
  • 举报
回复
int main(my_struct *p)
楼主的主函数。。。
建议楼主多多主意自己的编程习惯,还有就是基础
yuzl32 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 schunter 的回复:]
程序就这么简单,为何输出不是预期的20,变成了“Null pointer assignment".谁能给解释一下。还有到底该怎样写才能得到预期的结果?
[/Quote]
main函数不是这样写的,同样,你传进去的p也还没有分配.
dubiousway 2010-03-26
  • 打赏
  • 举报
回复
int main(my_struct *p) --- 我第一次见,真神奇
yuzl32 2010-03-26
  • 打赏
  • 举报
回复

#include <stdio.h>

typedef short U16;
typedef unsigned char U8;

typedef struct
{
U16 n;
U16 len;
U8 c[12];
}my_struct;

int main()
{
my_struct p;
char *ll = "20";
sscanf (ll, "%d", &(p.len));
printf("s=%d\n",p.len);
}

69,369

社区成员

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

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