[問題] C語言字串擴張合併 記憶體管理問題

看板C_and_CPP作者 (800IM)時間9年前 (2016/09/23 18:50), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
若我先宣告了一個 char* str = NULL; 或者 char* str = (char*)malloc(4); 然後用 strcat() 或 sprintf() 等等方法去增加字串內容,增加到比原來多很多字。 我是否還需要手動 realloc 先把合併之後所需記憶體空間要出來? 還是這類合併字串的函式本身已經會重新配置? 因為經常在 strcat() 發生 Segmentation fault,想確實了解可能原因。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.205.43 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1474627856.A.734.html

09/23 18:56, , 1F
dest的memory要自己alloc,strcat不會幫你做
09/23 18:56, 1F

09/23 21:20, , 2F
字串的function應該都不會管你的記憶體,要自己負責
09/23 21:20, 2F

11/01 00:19, , 3F
改用 asprintf
11/01 00:19, 3F
文章代碼(AID): #1NvGaGSq (C_and_CPP)