“读信息个数未知的文件,写入数组”,有木有好的解决方案呢?

千行百行 2016-09-03 10:41:56
比方说,一个文件中有很多(事先不知道个数)正整数,现在打算把它们读到数组中。我的想法是,先计算出个数,再开一个数组读取数字。问一下有没有别的方案;或者直接就放弃用数组,使用别的什么方法。优先考虑C语言
...全文
377 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-09-05
  • 打赏
  • 举报
回复
malloc,realloc,free
千行百行 2016-09-05
  • 打赏
  • 举报
回复
引用 11 楼 zhao4zhong1 的回复:
malloc,realloc,free
改天试试看
千行百行 2016-09-04
  • 打赏
  • 举报
回复
引用 9 楼 sxldfang 的回复:
[quote=引用 楼主 shiyuzuxiaqianli 的回复:] 比方说,一个文件中有很多(事先不知道个数)正整数,现在打算把它们读到数组中。我的想法是,先计算出个数,再开一个数组读取数字。问一下有没有别的方案;或者直接就放弃用数组,使用别的什么方法。优先考虑C语言
链表+动态分配[/quote]看来只要放弃数组,就有好的方法
sxldfang 2016-09-04
  • 打赏
  • 举报
回复
引用 楼主 shiyuzuxiaqianli 的回复:
比方说,一个文件中有很多(事先不知道个数)正整数,现在打算把它们读到数组中。我的想法是,先计算出个数,再开一个数组读取数字。问一下有没有别的方案;或者直接就放弃用数组,使用别的什么方法。优先考虑C语言
链表+动态分配
千行百行 2016-09-04
  • 打赏
  • 举报
回复
自己顶起来,自己顶起来
paschen 2016-09-03
  • 打赏
  • 举报
回复
方法一:先计算个数 方法二:采用类似C++STL中容器的实现,可以先预先分配适当大小内存,不够时分配更大的,然后将之前内容复制到新内存,释放旧内存
libinden71 2016-09-03
  • 打赏
  • 举报
回复
引用 6 楼 caojinrong 的回复:
别存数组了,边读边处理
边读边处理? 你指的是读取一个处理一个 然后在读取? 如果是这样 效率低下啊,还不如直接全部一次性读取到内存里在处理
caojinrong 2016-09-03
  • 打赏
  • 举报
回复
别存数组了,边读边处理
千行百行 2016-09-03
  • 打赏
  • 举报
回复
引用 4 楼 paschen的回复:
[quote=引用 2 楼 千行百行的回复:][quote=引用 1 楼 paschen的回复:]方法一:先计算个数 方法二:采用类似C++STL中容器的实现,可以先预先分配适当大小内存,不够时分配更大的,然后将之前内容复制到新内存,释放旧内存
方法一就是我说到的方法啊,方法二感觉不是很好啊[/quote] 使用文件映射方式,然后将将指针指向数据开头,就可以直接按数组方式访问了[/quote] 不是很懂版主说的这种方法,查查看去
paschen 2016-09-03
  • 打赏
  • 举报
回复
引用 2 楼 千行百行的回复:
[quote=引用 1 楼 paschen的回复:]方法一:先计算个数 方法二:采用类似C++STL中容器的实现,可以先预先分配适当大小内存,不够时分配更大的,然后将之前内容复制到新内存,释放旧内存
方法一就是我说到的方法啊,方法二感觉不是很好啊[/quote] 使用文件映射方式,然后将将指针指向数据开头,就可以直接按数组方式访问了
千行百行 2016-09-03
  • 打赏
  • 举报
回复
自己顶上去,自己顶上去。
千行百行 2016-09-03
  • 打赏
  • 举报
回复
引用 1 楼 paschen的回复:
方法一:先计算个数 方法二:采用类似C++STL中容器的实现,可以先预先分配适当大小内存,不够时分配更大的,然后将之前内容复制到新内存,释放旧内存
方法一就是我说到的方法啊,方法二感觉不是很好啊

69,382

社区成员

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

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