我試過了這種循環的各種排列。如何將char *複製到靜態字符串數組中,printf產生奇怪的輸出,
char hrstdesc[50][50];
char hrstread[50][50];
int i = 0;
for (hfree = hentry; hfree; hfree = hfree->prev) {
if (filterentry(hfree)) {
continue;
}
strcpy(&hrstdesc[i][0], hfree->hrstdesc);
printf("%s \n", hrstdesc[i]);
i++;
}
printf("%s \n", hrstdesc[1]);
的輸出,
/run/media/username/archive
/home
/var
/
/ho/va/
第4行來自何方,printf("%s \n", srtdesc);
,並且是我的期望。
最後一行,我期望看到/home
,但我得到/ho/va/
。
https://github.com/techzilla/check_snmp_extras/blob/master/src/check_snmp_disks.c
for(hentry = hentry;)??? –
'hentry = hentry'你爲什麼要這麼做? – babon
@babon,請糾正我,我會非常感激。我只是認爲這是你在循環這個結構時應該做的事情。我對更好的練習很感興趣。 我見過一些人做了一個臨時變量,運行這樣一個循環,但不知道爲什麼。有點像'for(hfree = hentry; hfree; hfree = hfree-> prev){' – TechZilla