두 개의 구조체를 만드는 데 문제가 있습니다. 하나는 가방이라고하고 다른 하나는 카드입니다. 이것은 내가 지금까지 가지고있는 것입니다 :(C++) 하나의 구조체가 다른 점을 가짐
struct Card
{
char suit;
int value;
};
struct BagNode
{
Card* Card;
BagNode* next;
};
void fillWithCards(BagNode *&head, BagNode *&tail, BagNode *&temp)
{
char suits [] = {'s', 'h', 'd', 'c'};
int val [] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
for (int x = 0; x < 4 ; x++)
{
for (int y =1 ; y <= 13 ; y++)
{
BagNode *now = new BagNode;
now -> Card -> suit = suits [x];
now -> Card -> value = val [y];
if (*&head == NULL && *&tail == NULL && *&temp == NULL)
{
head = now;
tail = now;
temp = now;
}
else if (*&tail != NULL && *&temp != NULL)
{
tail -> next = now;
temp -> next = now;
tail = now;
temp = now;
}
else
{
tail -> next = NULL;
}
}
}
}
문제는 내가 컴파일하고 프로그램을 실행할 때 충돌합니다. 문제가 관련되어 있다는 느낌이 들었습니다 Card* Card;
예, 카드에있는 모든 것을 가질 수 있다는 것을 알고 있습니다. 즉, *next
이 있고 BagNode
은 필요하지 않습니다. 그러나 교수에게 물어 보니 그는 Bag
에 두 개의 구조체가 있고 Card
에 두 개의 구조체가 있어야한다고했습니다.
이 문제를 도와주세요. 도움 주셔서 감사합니다.
을이 [프로그램을 디버깅하는 방법]에 완벽한 시간 (https://ericlippert.com/2014/03/05/how-to-입니다 debug-small-programs /). –
왜 가방 하나당 하나의 카드로 여러 가방의 연결 목록이 있습니까? 그 가방은 무엇을 나타낼 것인가? 여러 개의 카드가 들어있는 하나의 가방이 나에게 더 적합 할 것입니다. –