→ idiont: 你沒附上完整程式碼有點難通靈09/25 17:27
→ idiont: 你迴圈的len是什麼東西09/25 17:30
→ idiont: p的內容又是什麼09/25 17:30
len=10; p.name 內容是10個字串
TaipeiMainStation, Nangan, Taoyuan,..等10個 string
→ kobe8112: . VS ->09/25 17:30
→ kobe8112: 宣告 void send(struct XXX *p) 就用 p->name[i]09/25 17:39
→ kobe8112: 宣告 void send(struct XXX p) 就用 p.name[i]09/25 17:39
嗯嗯,我是用reference void send(struct XXX &p); 透過p.name[i]取得
※ 編輯: OfficeGL (111.71.32.115 臺灣), 09/25/2019 17:47:22
推 ko27tye: highline那行改了後會變成{A1:55555,A2:55555, ...}是嗎09/25 18:01
→ ko27tye: 不改就只有{A1:TaipeiMainStartion 然後跳出迴圈?09/25 18:02
對的,所以我很無頭緒,迴圈其實有繼續跑到底
但是str不會再被更新,連第一次迴圈的最後,都沒有被加上去
※ 編輯: OfficeGL (111.71.32.115 臺灣), 09/25/2019 18:09:37
推 steve8625: 照你描述只剩懷疑塞給p.name的code有問題, 方便貼嗎09/25 18:13
推 ko27tye: 我猜可能是struct的name陣列沒初始化讀到怪東西 先用 09/25 18:15
這邊應該沒問題,因為我單步驟執行,看變數內容是正確的
感覺跟c++ string有關係,我很一般的用
char buffer[] 初始化 name陣列
例如: p.name[i]=string(buffer+offset, lengthofstring)
※ 編輯: OfficeGL (111.71.32.115 臺灣), 09/25/2019 18:18:33
→ ko27tye: memset初始化 或直接用vector儲存字串 09/25 18:16
→ idiont: 覺得是你的buffer或p.name沒處理好 09/25 18:53
→ ctrlbreak: 你用bind去call的嗎 09/25 22:11
推 Gway: string list = {"A1", "A2", ......}; 改成string list[] = 09/26 06:24
→ Gway: {"A1", "A2", ......}; 09/26 06:24
→ kiedveian: 我猜是 TaipeiMainStartion\0 10/02 07:34