gpt4 book ai didi

c++ - 访问节点后出现段错误

转载 作者:行者123 更新时间:2023-12-02 10:23:05 24 4
gpt4 key购买 nike

我正在尝试使用链表制作一副随机的纸牌。但是,每当我尝试使用我的 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);
}

最佳答案

当您第一次使用 BagNode *temp=new BagNode 创建新的 BagNode 时, 你不初始化 cardnext成员变量。正在尝试访问 temp->card->suits导致段错误,因为您试图访问 card 的成员变量在卡本身被定义之前。

试试这个:

BagNode *temp=new BagNode;
temp->card = new Card();
temp->card->suit=suits;
temp->card->value=values;
temp->next=head;
head=temp;

关于c++ - 访问节点后出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com