[問題] K&RII 5.6 Pointer Arrays
K&RII 5.6 Pointer Arrays的readline函式
片段程式如下:
/* readlines: read input lines */
int readlines(char *lineptr[], int maxlines)
{
int len, nlines;
char *p, line[MAXLEN];
nlines = 0;
while ((len = getline(line, MAXLEN)) > 0)
if (nlines >= maxlines || p = alloc(len) == NULL)
return -1;
else {
line[len-1] = '\0'; /* delete newline */
strcpy(p, line);
lineptr[nlines++] = p;
}
return nlines;
}
我的問題就是lineptr[nlines++] = p這一行
假設我輸入:
defgh
jklmnopqrst
abc
然後printf("%s,%s,%s",lineptr[0],lineptr[1],lineptr[2]);
書本的題意照理講應該會輸出:
defgh,jklmnopqrst,abc
但實際輸出:
abc,abc,abc
每個指標陣列都指向最後一個輸入列,這不就跟書本題意(每個指標陣列都個別指向一
個輸入列)
不一樣了嗎?還是我有哪邊有想錯,煩請各位前輩不吝指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.11.76
推
01/11 20:27, , 1F
01/11 20:27, 1F
→
01/11 20:28, , 2F
01/11 20:28, 2F
→
01/11 20:28, , 3F
01/11 20:28, 3F
→
01/11 20:28, , 4F
01/11 20:28, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章