Я хочу получить пересечение двух связанных списков, но когда я объявляю итераторы вне цикла for, он просто не работает
// THIS WORKS FINE
for (SList iter1 = list1 ; !slist_empty(iter1); iter1 = iter1->next) {
for(SList iter2 = list2 ; !slist_empty(iter2); iter2 = iter2->next) {
if(comp(iter1->data, iter2->data)) {
result = slist_add(result, iter1->data);
}
}
}
// THIS DOESN't
SList iter1 = list1 ;
SList iter2 = list2 ;
for (; !slist_empty(iter1); iter1 = iter1->next) {
for(; !slist_empty(iter2); iter2 = iter2->next) {
if(comp(iter1->data, iter2->data)) {
result = slist_add(result, iter1->data);
}
}
}
im компилируется с -std = c99