Как сравнить два разных указателя, которые ссылаются на разные структуры? - C (СИ)
Формулировка задачи:
как сравнить два разных указателя, которые ссылаются на разные структуры?
p->id с p1->id
пробую вот так, но видимо это не верно раз i не меняется с 0 на 1;
пробовал присваивать p->id с p1->id char tmp1[25] и tmp2[25] соответственно и проверять их через strcmp(), но не выходит.
// вот структуры struct dep { char id[25]; char depname[25]; char adress[25]; dep *next; }; struct people { char id[25]; char coid[25]; char name[25]; char birth[25]; char postid[25]; char empty[25]; people *next; }; // вот примерный цикл проверки while(p1!=NULL) { if (p1->id==p->id) {i=1; break} p1=p1 -> next; }
Решение задачи: «Как сравнить два разных указателя, которые ссылаются на разные структуры?»
textual
Листинг программы
while (p1) { if (!strcmp(p1->id,p->id)) { i = 1; break } p1 = p1 -> next; }
Объяснение кода листинга программы
В данном коде выполняется сравнение двух указателей, которые ссылаются на разные структуры.
- Создается условие для цикла while, которое проверяет, что указатель p1 не равен нулю.
- Внутри цикла while происходит проверка на равенство идентификаторов структур, на которые указывают указатели p1 и p.
- Если идентификаторы равны, то переменной i присваивается значение 1 и цикл прерывается.
- Если идентификаторы не равны, то указатель p1 переходит к следующей структуре в списке, на которую он указывает.
- Цикл продолжается до тех пор, пока не будет выполнено условие выхода из цикла.
- После выполнения цикла, значение переменной i будет равно 1, если идентификаторы структур были равны, и 0 в противном случае.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д