一个关于结构体的问题

长不大的空想者 2014-06-06 08:43:03
利用结构体写个输入学生信息
然后输出的程序但是报错
错误如下


.h文件


主程序

进过个人排查,错误出现在%7s输出学生名字这块
将输出学生姓名删了就没有错
但个人能力有限,实在想不出什么原因
希望大家能够帮忙解决
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
starytx 2014-06-06
  • 打赏
  • 举报
回复
char*只是一个字符指针,他可以指向一个内存空间,如果是向他指向的空间录入(写入)的话就要保证这个空间是可写的(指向一个字符数组就可以,指向一个字符串常量值就不可以写,只能读取)
max_min_ 2014-06-06
  • 打赏
  • 举报
回复
引用 2 楼 u010515100 的回复:
[quote=引用 1 楼 max_min_ 的回复:] 名字没有分配足够的内存空间吧! malloc一下 或者用栈空间 char last_name[20];
内存好像是没分配,主要我是看书这样做的。 是否代表书有错误? [/quote] 书上没有问题,书上这样是把常量字符串"Busheker"的地址赋值给last_name了, 也就是说让last_name这个指针指向了"Busheker",是有地址指向了
sdu_sky 2014-06-06
  • 打赏
  • 举报
回复
last_name没分配内存啊。可以malloc一下或者使用字符数组。
xiaohuh421 2014-06-06
  • 打赏
  • 举报
回复
由于未初始化, 可能是内存访问越界导致.
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:
名字没有分配足够的内存空间吧!
malloc一下
或者用栈空间 char last_name[20];

内存好像是没分配,主要我是看书这样做的。
是否代表书有错误?
max_min_ 2014-06-06
  • 打赏
  • 举报
回复
名字没有分配足够的内存空间吧! malloc一下 或者用栈空间 char last_name[20];

69,373

社区成员

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

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