【发布时间】:2019-12-06 15:58:04
【问题描述】:
我正在尝试使用链表制作一副随机的纸牌。但是,每当我尝试使用我的 addCard 函数时,我都会收到分段错误错误。
是 temp->card->suit=suits;更改节点内节点值的正确方法?我想这就是我的问题所在。
谢谢!
struct Card{//card node
char suit;
int value;
};
struct BagNode{//bag node
Card* card;
BagNode *next;
};
class Bag{
private:
BagNode *head, *tail;
public:
int size;
void addCard(char suits, int values){//adds card to end of deck
BagNode *temp=new BagNode;
temp->card->suit=suits;
temp->card->value=values;
temp->next=head;
head=temp;
}
};
int main(){
Bag deck;
deck.addCard('H',10);
}
【问题讨论】:
-
您还必须分配
Card。 -
BagNode的成员变量card是一个指针,您必须使用new手动分配它。您可以在BagNode构造函数中执行此操作,但请确保您也在析构函数中free它。 -
@Pesho_T 请不要在 cmets 中回答
-
@CoderCharmander 也
标签: c++