台灣最大程式設計社群網站
線上人數
2017
 
會員總數:245979
討論主題:189557
歡迎您免費加入會員
討論區列表 >> C/C++ >> 關於strtok與char維度的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於strtok與char維度的問題
價值 : 200 QP  點閱數:593 回應數:1
樓主

Xien
門外漢
0 11
161 4
發送站內信

請問各位前輩關於c++
strtok的問題






輸出結果為:
time33333tttttt
Ttt




輸出結果為:
time33333tttttt
Ttt
程式記憶體區段錯誤 (core dumped)


想請問各為前輩我在這個地方
使用不同的維度 為何會產生這樣的結果?
char (*get_strtokchar)[100] = new char[100][100];
char *get_strtokchar = new char[100];

搜尋相關Tags的文章: [ c ] , [ strtok ] ,
本篇文章發表於2016-09-27 23:19
1樓
回應

Raymond
檢舉此回應
你程式本身就有錯誤.
1. strtok() 不是這樣用的. 第一次呼叫的時候, 第一個參數必須指向一個 C-字串 (也就是 0 終結的字元陣列). 後續的搜尋才把第一個參數換成 null pointer. 非正確的使用會導致不可預期的結果.

2. 只要 new 成功, get_strtokchar 不可能是 NULL. 所以你不能以 get_strtokchar 是否 NULL 來作為結束迴圈的判斷.

3. 配置了 get_strtokchar 後, 你沒有賦值, 所以它指向的記憶體是亂值. 輸出一個沒有賦值的物件會導致不可預期的結果.


本篇文章回覆於2016-09-28 21:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.