作者leon1757tw (指考战士)
看板C_and_CPP
标题[问题] 关於动态配置二维阵列的存取
时间Sun Dec 18 01:20:34 2016
开发平台(Platform): (Ex: Win10, Linux, ...)
FreeBSD 10.1
gcc 4.8.5
版上各为大家好
最近在练习一个程式,使用fopen()开档读入资料
目前的想法是想将资料透过fgets()读入
并一行一行存入一个使用动态配置的二维阵列中
http://imgur.com/0hMsXPg
http://imgur.com/2ITqm3A
问题一
不知为何於21行中
fptr如没重新指向fopen()
下方for回圈中fgets()所做的事情会被跳过
问题二
将fgets()所得字串存入data[i]中
执行结果会得到segmentation fault (core dumped)
是无法这样存取吗?
请问各位高手该如何解决
拜托大家了
最近刚学指标请各位大大多多指教
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.166.233.182
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1481995242.A.C1D.html
2F:→ aiwhat: 第一段的叙述:fgetc读完後会指向下一个字元 12/18 02:01
4F:→ aiwhat: 问题二是Initialize里面写错了 12/18 02:21
5F:→ aiwhat: dynamic 2d array 可以参考 z-4-3-1-3 12/18 02:22
感谢说明第一个问题已解决,
但Initialize内二维动态阵列修改後,
fgets()仍无法存入data[i]中,
执行结果依然是segmentation fault (core dumped)
还是其他问题呢?
附上程式码:
http://ideone.com/0nA39U
※ 编辑: leon1757tw (220.133.214.137), 12/19/2016 00:02:13
※ 编辑: leon1757tw (220.133.214.137), 12/19/2016 00:04:33
6F:→ aiwhat: for 里面不用 fgets 12/19 10:07
7F:→ aiwhat: fgets 会把换行符号 '\n' 放进字串,试试把Initialize还有 12/19 10:10
8F:→ aiwhat: fgets 的 lineMaxChar 换成 lineMaxChar + 1 12/19 10:11
9F:→ aiwhat: 还要多一个空间放 '\0' 12/19 10:11
谢谢a大的说明,
已经解决了。
※ 编辑: leon1757tw (220.133.214.137), 12/19/2016 13:45:45