[問題] 配置和輸入字串一樣長的動態陣列

看板C_and_CPP (C/C++)作者 (嘿嘿)時間13年前 (2013/05/29 16:18), 編輯推噓0(005)
留言5則, 4人參與, 最新討論串1/1
有個問題想問大家, 我知道動態配置記憶體空間的方式如下: char *string = (char *)malloc(len * sizeof(char)); 但我想問的是, 關於len都是我們先預先配置一個可以容納N-user可能輸入字串的長度, 我們有把辦法可以把len預估的和N-user輸入的字串長度一樣嗎? 我現在想到的辦法是, 我把len能設多大就設多大, 把N-user輸入的字串塞進buffer中, 再strlen(buffer),就可以知道N-user真正輸入的字串長度, 然後再free(string),再重新配置一個新的記憶體空間。 不曉得各位有聽懂我的意思嗎?很抱歉... 請教各位了。謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.129.63

05/29 18:10, , 1F
realloc可以做到
05/29 18:10, 1F

05/29 18:32, , 2F
怎麼可能猜到他輸入多大,除非超過就剁掉。
05/29 18:32, 2F

05/29 18:32, , 3F
你的作法沒錯,不過剁掉就可以了…
05/29 18:32, 3F

05/29 18:44, , 4F
哈哈,不過一樓提到的realloc是不錯的建議,謝謝~
05/29 18:44, 4F

05/30 16:21, , 5F
strdup
05/30 16:21, 5F
文章代碼(AID): #1HfRcux4 (C_and_CPP)
文章代碼(AID): #1HfRcux4 (C_and_CPP)