[問題] 關於動態配置二維陣列的存取

看板C_and_CPP (C/C++)作者 (指考戰士)時間9年前 (2016/12/18 01:20), 9年前編輯推噓0(009)
留言9則, 1人參與, 最新討論串1/1
開發平台(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://www.ptt.cc/bbs/C_and_CPP/M.1481995242.A.C1D.html

12/18 02:01, , 2F
第一段的敘述:fgetc讀完後會指向下一個字元
12/18 02:01, 2F

12/18 02:21, , 4F
問題二是Initialize裡面寫錯了
12/18 02:21, 4F

12/18 02:22, , 5F
dynamic 2d array 可以參考 z-4-3-1-3
12/18 02:22, 5F
感謝說明第一個問題已解決, 但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

12/19 10:07, , 6F
for 裡面不用 fgets
12/19 10:07, 6F

12/19 10:10, , 7F
fgets 會把換行符號 '\n' 放進字串,試試把Initialize還有
12/19 10:10, 7F

12/19 10:11, , 8F
fgets 的 lineMaxChar 換成 lineMaxChar + 1
12/19 10:11, 8F

12/19 10:11, , 9F
還要多一個空間放 '\0'
12/19 10:11, 9F
謝謝a大的說明, 已經解決了。 ※ 編輯: leon1757tw (220.133.214.137), 12/19/2016 13:45:45
文章代碼(AID): #1OLNFgmT (C_and_CPP)
文章代碼(AID): #1OLNFgmT (C_and_CPP)