[問題] 字串列表的傳遞 (C語言)

看板C_and_CPP (C/C++)作者時間12年前 (2014/02/13 21:55), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 一個副程式 一個主程式 要將字串列表從副程式中傳出來 列表的意思為很多組字串的集合 稱之為列表(list) 如何將副程式裡儲存的字串列表結果,正確傳遞出來給主程式用 預期的正確結果(Expected Output): 預期的結果是,副程式裡存的兩組不同字串資料,能傳遞出來給主程式用 錯誤結果(Wrong Output): 主程式裡列印出的兩組字串,竟然都是一樣的字串,皆為副程式裡儲存的第二組字串 程式碼(Code):(請善用置底文網頁, 記得排版) void search(... , char *filelist[],... ) { ... ... ... filelist[0]=第一組字串; filelist[1]=第二組字串; (可多組字串儲存進字串指標) ... ... } void main() { char *mfilelist[50]; //預設最多50組字串 search(..., mfilelist,..); printf("1.%s \n",mfilelist[0]); printf("2.%s \n",mfilelist[1]); } 補充說明(Supplement): 先謝謝大家指正程式跟觀念先, 以C語言修正就好 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: jacobomb 來自: 1.34.102.165 (02/13 21:56)

02/13 22:12, , 1F
問題應該在 search 的其他程式, 多半是某個 buffer 的指標
02/13 22:12, 1F

02/13 22:12, , 2F
被重覆使用並指定進回傳陣列裡回傳回來了
02/13 22:12, 2F

02/13 22:36, , 3F
副程式裡頭有其他程式,不過在副程式裡檢查過
02/13 22:36, 3F

02/13 22:37, , 4F
在傳遞前的確是存兩組不同的字串
02/13 22:37, 4F

02/13 22:43, , 5F
推一樓
02/13 22:43, 5F

02/14 00:59, , 6F
你還是貼 search 出來吧, 因為光這裡目前看不到有什麼問題
02/14 00:59, 6F

02/14 15:33, , 7F
其實我比較懷疑 他是不是把字元長度50,當做array長度50
02/14 15:33, 7F

02/14 21:31, , 8F
那個, 原文程式碼中的 50 確實是 50 組字串喔
02/14 21:31, 8F

02/16 04:10, , 9F
http://ideone.com/yBa3hp 沒問題可執行~
02/16 04:10, 9F
文章代碼(AID): #1I_CwwEl (C_and_CPP)
文章代碼(AID): #1I_CwwEl (C_and_CPP)