模拟洗牌发牌运用结构体数组,运行出了问题,显示Segmentation fault (core dumped)

这是一个模拟洗牌发牌的过程
编译显示没有问题,但是运行的时候出现Segmentation fault (core dumped)

```c

#include
#include
#include
typedef struct carD{ //定义结构体
char suit[9];
char face[6];
}Dcard;
void suitput(int a,int b,Dcard card[],char suit[9]) //输入花色
{
for(int i=a;a
{
*card[i].suit=suit[9];
}
}
void faceput(Dcard card[],char face[6]) //输入牌面
{
for(int c=0;c<13;c++)
{
for(int i=c;i<52;i+=13)
{
*card[i].face=face[6];
}
}
}

void changeorder(Dcard card[]) //打乱顺序(洗牌)
{
Dcard temp[1];
for(int k=0;k<100;k++){
srand((unsigned)time(NULL));
int a,b;
a=rand()%52;
b=rand()%52;
temp[0]=card[a];
card[a]=card[b];
card[b]=temp[0];
}
}
int main(void){
Dcard card[52];
Dcard*pt=card;
suitput(0,13, card, "Spades" );
suitput(13,26,card,"Hearts");
suitput(26,39,card, "Clubs");
suitput(39,52,card,"Diamonds");
faceput( card,"A");
faceput( card,"2");
faceput( card,"3");
faceput( card,"4");
faceput( card,"5");
faceput( card,"6");
faceput( card,"7");
faceput( card,"8");
faceput( card,"9");
faceput( card,"10");
faceput( card,"Jack");
faceput( card,"Queen");
faceput( card,"King");
changeorder(card);
printf("第一个人的牌:"); //洗完的牌发出去
for(int k=0;k<13;k++){
printf("%c %c",*card[k].suit,*card[k].face);
}
printf("\n第二个人的牌:");
for(int k=13;k<26;k++){
printf("%c %c",*card[k].suit,*card[k].face);
}
printf("\n第三个人的牌:");
for(int k=26;k<39;k++){
printf("%c %c",*card[k].suit,*card[k].face);
}
printf("\n第四个人的牌:");
for(int k=39;k<52;k++){
printf("%c %c",*card[k].suit,*card[k].face);
}
return 0;
}

```无法运行。

*card[i].suit=suit[9];
这是要干啥?
suitput(26,39,card, "Clubs");这么调用的话,suit[9]都越界访问了啊