我想製作字符串數組,我有功能rLine
從stdin讀取行,每輸入一行我需要保存在數組中,但我不知道數字輸入的字符串行。所以,我需要動態增加數組大小來存儲它們,我寫了這樣的代碼:動態數組中的字符串在C
char *res[2], *old = res;
while(1){
line = rLine(stdin), len = strlen(line);
res[row] = (char*)malloc(len + 1);
strcpy(res[row++], line);
res = (char**) realloc(res, row); /* adding 1 more row, not sure adding size row? */
if (/*some cond*/) break;
}
但這代碼似乎並不工作,如何正確聲明數組,增加它的大小?
爲什麼不實現一個簡單的鏈表並在每個元素中存儲一個字符串? – Goaler444
問題是res不是指向指針的指針,是指針數組,其中有2個元素被預先分配。 – imreal
你如何區分EOF?不能'rLine()'告訴你字符串的長度?爲什麼要將兩個任務分配到一條線上? (使用逗號運算符工作,但這裏沒有必要,除非必要,否則不應使用。) –