我已经尝试了很多有关fscanf和print函数的东西,Fight函数在另一个文件中,并且具有此原型
void Fight( char * combatant1, int ac1, int hp1, int hitbonus1, int damagebonus1, char * combatant2, int ac2, int hp2, int hitbonus2, int damagebonus2);
但是我不认为这是错误的出处。当该行被注释掉时,我仍然遇到段错误。谁能帮我这个?数据文件看起来像这样
名称## ## ## ### >>
这是我的代码
void printInfo(FILE *f1, FILE *f2){
char* name1;
char* name2;
int armor1;
int armor2;
int hp1;
int hp2;
int hb1;
int hb2;
int db1;
int db2;
fscanf(f1, "%s %d %d %d %d", name1, &armor1,&hp1,&hb1,&db1);
printf("\nName=%s, Armor=%d, Hit Points=%d, Hit Bonus=%d, Damage Bonus=%d", name1,armor1,hp1,hb1,db1);
fscanf(f2, "%s %d %d %d %d", name2, &armor2,&hp2,&hb2,&db2);
printf("\nName=%s, Armor=%d, Hit Points=%d, Hit Bonus=%d, Damage Bonus=%d", name2,armor2,hp2,hb2,db2);
//Fight(name1,armor1,hp1,hb1,db1,name2,armor2,hp2,hb2,db2);
}
我已经尝试了很多与fscanf和print函数有关的事情,Fight函数位于另一个文件中,并且具有该原型void Fight(char * fightingant1,int ac1,int hp1,int ...
每个指针在声明后都需要初始化为有效地址。为了使地址有效,需要分配该地址。您的指针
char* name1;
char* name2;