我可以张贴整个代码,如果你们想要的,但这里是我的问题的实质:交换两个数组元素在结构中使用C
typedef struct
{
CardT cards[DECK_SIZE];
int count;
}DeckT;
void shuffleDeck(DeckT *deck){
int k=50;
DeckT *randCard = deck;
DeckT *startCard = deck;
while (k>0){
int r = k % 25;
int i = 0;
for(i=0; i < r; i++, randCard++){
printf("%i %i",i,r);
}
CardT A; //do I declare A to be a Card Struc or a pointer to the array of cards?
A = *randCard; //this is where my program locks up.
*randCard = *startCard; //swapping pointers seems pointless [hehe]
*startCard = A;
printf(" yo yo yo shuffle\n"); //doesn't print this line at all, locks up before
k--;
*startCard++;
}
我明白,我需要交换的实际元素和不是指针,但我不确定如何去做。该函数的基本流程是去除指向我的套牌的两个指针,指向卡片阵列[我需要指定这个?],然后根据k%25交换卡片。
我不担心交换的实际随机性,现在,我只是想知道如何交换两个卡[其本身结构。
真棒,谢谢=] – user3037816