结构体内字符数组越界问题

ccm2020 2010-04-22 11:55:52
struct a{
char a1[8];
char a2[4];
}
文件内容123456789abcdefg

我用结构体读文件时,发现a1的值会越界,长度超过8字节..
如果文件第8字节是空字符,就不会越界,,,,

请问怎么样才能让a1的内容是12345678啊?
...全文
346 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccm2020 2010-04-22
  • 打赏
  • 举报
回复
读取文件前8个字符,后4个字符的结构 怎么定义呢????
赵4老师 2010-04-22
  • 打赏
  • 举报
回复
char a1[8];//加上末尾的'\0',a1最多能存储7个字符.
贪食蛇男 2010-04-22
  • 打赏
  • 举报
回复
手动截取长度,读一行,前七个字节赋给第一个,紧接着3个字节给第二个,多余的抛弃

每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
babyvox1999 2010-04-22
  • 打赏
  • 举报
回复
把a1数组变大点
测试昵称666 2010-04-22
  • 打赏
  • 举报
回复
设置大一点。或者用动态数组。
wade_2003 2010-04-22
  • 打赏
  • 举报
回复
是因为你的char a1[8]根本存不下12345678 这8个字符
还要存储'\0'呢,改成a1[9] 试试
herman~~ 2010-04-22
  • 打赏
  • 举报
回复
越界是因为数组需要存储结束符“/0” ,建议加大数组的长度吧
kevinyujm 2010-04-22
  • 打赏
  • 举报
回复
struct a{
char a1[9];
char a2[5];
}

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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