小编vla*_*d27的帖子

struct 字段中的随机值

我正在尝试学习一些 C 语言,并且我已经从一个简单的纸牌程序开始。

该卡是包含两个整数的结构体,用于面部和花色。我正在通过分配 52 张卡片并进行一个循环来构建一副套牌。

card *Deck = (card*)malloc(sizeof(card) * 52);
for(int i = 0; i < 4; i++){
    for(int j = 1; j < 14; j++){
        Deck->face = j;
        Deck->suit = i;
        Deck += sizeof(card);
    }
}
Deck -= sizeof(card) * 52;
printDeck(Deck);

free(Deck);
Run Code Online (Sandbox Code Playgroud)

我有一个printCard接受单个指针并打印值的函数,以及一个调用printCard52 次的打印平台函数。如果我在创建卡片时打印卡片,一切都会顺利,但如果我在卡片创建之后打印卡片,因为某些原因我会在第 6 张卡片上出现段错误。我启动gdb并注意到这个输出:

card *Deck = (card*)malloc(sizeof(card) * 52);
for(int i = 0; i < 4; i++){
    for(int j = 1; j < 14; j++){
        Deck->face = …
Run Code Online (Sandbox Code Playgroud)

c struct pointers

1
推荐指数
2
解决办法
145
查看次数

标签 统计

c ×1

pointers ×1

struct ×1