问个关于内存的问题,请高手不吝赐教
这是一个显示扑克点数和花色的程序代码,编译没有问题,但运行时却提示内存错误,请高手帮忙排错!谢谢!
struct card
{
int pips;
char suit;
};
#include <iostream.h>
void assign_value(struct card *,int,char),print_value(struct card *),
extract_value(struct card *,int *,char *);
void main()
{
struct card cards[20];
for(int i=0;i<13;i++)
{
assign_value(cards+i,i+1,'c');
assign_value(cards+i+13,i+1,'d');
assign_value(cards+i+26,i+1,'h');
assign_value(cards+i+39,i+1,'s');
}
for(i=0;i<13;i++)
{
print_value(cards+i);
print_value(cards+i+13);
print_value(cards+i+26);
print_value(cards+i+39);
}
cout<<'\n';
}
void assign_value(struct card *c_ptr,int p,char s)
{
c_ptr->pips=p;
c_ptr->suit=s;
}
void extract_value(struct card *c_ptr,int *p_ptr,char *s_ptr)
{
*p_ptr=c_ptr->pips;
*s_ptr=c_ptr->suit;
}
void print_value(struct card *c_ptr)
{
int p;
char s,*name;
extract_value(c_ptr,&p,&s);
name=(s=='c')?"clubs":(s=='d')?"diamonds":(s=='h')?"hearts":(s=='s')?"spades":"error";
cout<<"card:"<<p<<" of"<<name<<endl;
}