我有一个main.c文件,其中包含所有启动内容。 我已初始化了套牌,但是我无法将数组的临时值存储到变量中: `
enum suit
{
CLUB, DIAMOND, HEART, SPADE
};
typedef enum suit Suit;
enum face
{
ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK,
QUEEN, KING
};
typedef enum face Face;
struct card
{
Suit c_suit;
Face c_face;
};
typedef struct card Card;
void shuffle(Card * deck);
void shuffle(Card * deck)
{
int temp;
int y, x, t=0;
for (x = 52; x > 0 ; x--)
{
y = rand() % x;
temp = deck[x];
deck[x] = deck[y];
deck[y] = temp;
}
}
`
答案 0 :(得分:2)
您要将deck[x]
的地址指定为int
变量。
temp = &deck[x];
你想做简单的交换,所以只需将deck[x]
的'值'分配给temp
,即
temp = deck[x];
<强>更新强>
正如 cyco130 在评论中所说,您可以在编译时使用-Wall
标志向gcc
启用更多编译器警告。
但是,AFAIW,编译器应该将此问题报告为错误,因为您尝试将int *
值存储到int
而没有明确的类型转换。