Может ли кто-нибудь сказать мне, почему этот код ведет себя именно так?
#include <iostream> #include <cstddef> using namespace std; struct cards { int num; string suit; cards * next_card; }; cards get_card(int num, string suit, cards *previous_card) { cards card; card.num = num; card.suit = suit; card.next_card = previous_card; return card; } int main() { cards *temp_card = NULL; string suit; for (int i = 0; i<4; i++) { if (i == 0){suit = "hearts";} if (i == 1){suit = "diamonds";} if (i == 2){suit = "clubs";} if (i == 3){suit = "spades";} for (int j = 0; j<13; j++) { cards sum_card = get_card(j+1, suit, temp_card); temp_card = &sum_card; } } while ((*temp_card).next_card != NULL) { cout <<(*temp_card).num <<" of "; cout <<(*temp_card).suit <<"\n"; temp_card = (*temp_card).next_card; } cout <<"yis it work"; }
Это предназначено для печати всех карт в колоде карт, но он просто печатает одну и ту же карту снова и снова бесконечно. Может ли кто-нибудь заметить проблему?
Что я уже пробовал:
печенье сумму.......................................................................
Kornfeld Eliyahu Peter
Вы использовали отладчик для пошагового выполнения кода?
BerthaDusStuf
Нет я действительно не знаю как использовать отладчик
Kornfeld Eliyahu Peter
Как разработчик это должно быть знание - вы не можете начать слишком рано...
BerthaDusStuf
хорошо я постараюсь этому научиться