看板 C_and_CPP 關於我們 聯絡資訊
你會不會是傳 const char *str 進去 ex: char *abc = "test"; // 應該寫成 const char *abc = "test"; CONF_removeSpace(abc); 如果是這樣你應該改成 char abc[] = "test"; CONF_removeSpace(abc); 試試看吧~ ※ 引述《s8752199 (s8752199)》之銘言: : ※ [本文轉錄自 CD-R 看板] : 作者: s8752199 (s8752199) 站內: CD-R : 標題: [問題] 字串給值出現segmentation fault : 時間: Thu May 7 09:18:49 2009 : 我想寫一個刪除前後空格的副函數 : char *CONF_removeSpace(char *original) : { : char *change = original; : int i = 0; : while(original[i] != '\0') : { : if(original[i] != ' ') : break; : else : change++; : i++; : } : for(i = strlen(change)-1; i >= 0; i--) : { : if(change[i] != ' ') : break; : else : change[i] = '\0'; //但執行這行時會出現segmentation fault : } : return change; : } : 請問是甚麼問題呢? : 感覺一點都沒有錯誤 : change[i]可印出值可卻不能給它值 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.79.63.18
s8752199:我是傳這樣 CONF_removeSpace(" aa "); =.= 05/07 10:06
s8752199:謝謝你 05/07 10:06
s8752199:我觀念真差 Orz 05/07 10:09