Рассмотрим этот код:Что не так с этим кодом 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);
Я хочу, чтобы это выход "string1 \ nstring2 \ п", однако str1 и str2 остается пустым. Что я делаю не так?
Реальный код перебирает двоичный файл до тех пор, пока не найдет «patternA», а затем сохранит некоторые данные, которые появляются после «patternA» в структуре, во втором цикле он переключается на новый шаблон «patternB» и сохраняет некоторые данные, которые появляется после него в другом значении в этой структуре. – user318747
@bstullkid: В таком случае проще написать две петли. –