[問題] 有關strcat的問題,困擾好久...

看板C_and_CPP (C/C++)作者 (嘿嘿)時間14年前 (2012/04/15 18:10), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) string.h 問題(Question): 我要把兩個字串相加,舉例來說, char *string1 = malloc (1024 * sizeof(char)); char *string2 = malloc (1024 * sizeof(char)); char *result = malloc (1024 * sizeo(char)); string1 = "hello"; string2 = "world"; result = strcat(string1,string2); 但結果會變的很奇怪, 看不到h,但出現很奇怪的圖形(似乎是overflow的情形), 我試著分別印出strlen和sizeof, 第一個字串strlen為5,sizeof為8, 第二個字串strlen為5,sizeof為8, 結果卻變成strlen為12,sizeof為1024, 但如果我改成 result = strcat(string1, "world"); 一切都正常,strlen為10,sizeof為8。 想請問各位先進,這到底哪裡出了問題呢?? 這個問題困擾了我好久,一直都沒進展,挫折感好大.... sorry,程式底子沒有很扎實。 補充說明(Supplement): 麻煩各位替我解答了,先跟大家說聲謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.129.63

04/15 18:13, , 1F
string1 = "hello" 這裡你不是複製字串而是把 string1 指走
04/15 18:13, 1F

04/15 18:14, , 2F
到另一個內容有 "hello" 的地方了
04/15 18:14, 2F

04/15 18:14, , 3F
複製字串要用 strcpy 才行
04/15 18:14, 3F

04/15 18:14, , 4F
一個觀念: C 語言的字串就是 char 陣列
04/15 18:14, 4F

04/15 18:23, , 5F
文章代碼(AID): #1FYfwDNJ (C_and_CPP)
文章代碼(AID): #1FYfwDNJ (C_and_CPP)