考慮以下代碼:這個c strdup代碼有什麼問題?
char *strs[] = { "string1", "string2", NULL };
char *ptr1 = NULL, *ptr2 = NULL, *tmp;
short iter = 0;
tmp = ptr1;
while (iter < 2)
{
tmp = strdup(strs[iter]);
tmp = ptr2;
iter++;
}
printf("1: %s\n2: %s\n", ptr1, ptr2);
我想這是輸出 「字符串1 \ nstring2 \ n」 但是str1和STR2保持空。我究竟做錯了什麼?
真正代碼通過一個二進制文件中循環,直到它找到「patternA」然後存儲在一個結構「patternA」之後到來時,在第二循環的某些數據切換到一個新的模式「patternB」並存儲一些數據在該結構中的另一個值之後。 – user318747 2010-05-07 15:00:21
@bstullkid:在這種情況下,編寫兩個循環可能會更簡單。 – 2010-05-07 22:39:22