→ ctrlbreak: 置底13戒-5 應該是吧XD 03/15 13:42
→ Shuhaur: 好像是這樣…我來試試,感謝 03/15 15:06
→ Schottky: 對就是一樓說的那樣 03/15 15:13
推 Dracarys: 何不用std::string就好了?還有language mode設C++17以 03/15 15:30
→ Dracarys: 上你的data會和std::data相撞 03/15 15:30
→ Shuhaur: 哇,這程式碼好帥…之所以不用 string 是因為我後面要寫 03/15 16:41
→ Shuhaur: socket, 所以會用到 byte 的 bitset... 03/15 16:42
→ MasterChang: queue不是thread-safe的 03/15 23:25
→ peter98: 你這問題應該跟thread沒關係 XD 03/16 03:21
→ peter98: 不然你在outString印一下data.size()試試 肯定是1 03/16 03:22
→ peter98: 你code的問題在於line 23那個str[10]不見了(local) 03/16 03:23
→ Dracarys: 要c-style string可以再呼叫std::string::c_str可以跟 03/16 07:18
→ Dracarys: 傳統C API對接,或是用string_view這種non-owning view 03/16 07:18
→ Dracarys: 做操作,小弟一些淺見不知道這能不能符合你的需求。用s 03/16 07:18
→ Dracarys: td::string好在它會取得那塊記憶體的ownership,不用自 03/16 07:18
→ Dracarys: 己管理。 03/16 07:18
→ Shuhaur: 嗯,跟thread沒關係,我試著直接call function 也是一樣 03/16 10:00
→ Shuhaur: 改用string的話,socket 用 char[] 接資料轉存string 03/16 10:01
→ Shuhaur: 另一個thread 可以拿出string, 但再用c_str 轉回 char 03/16 10:01
→ Shuhaur: 資料就不是原本的樣子了~ 03/16 10:01
推 Schottky: 今天的問題是和 thread 無關,但你這樣寫遲早踩到地雷 03/16 16:10
→ tomsawyer: data那個不是全域變數嗎?跟第五戒有關? 03/20 04:57
→ peter98: 是23行有問題 不是那個data有問題..................... 03/20 08:06
推 dreamroad: local變數的記憶體指標離開scope之外無效,你要克服的 04/01 21:33
→ dreamroad: 是記憶體管理的議題。 04/01 21:33