ljq2786430730 2021-11-06 15:26 采纳率: 100%
浏览 14
已结题

循环一次,二维动态数组就自动初始化为零,是哪里错了

int *ID=NULL,*In=NULL,*Exp=NULL,choice,num;
char **Name=NULL;
for(;;)
{
printf("1.Input record\n");
printf("2.Sort and list records in alphabetical order by user name\n");
printf("3.Search records by user name\n");
printf("4.Calculate and list per capita income and expenses\n");
printf("5.List records which have more expenses than per capita expenses\n");
printf("6.List all records\n");
printf("0.Exit\n");
printf("    Please enter your choice: ");
scanf("%d",&choice);
if(choice==1)
{
    int i;
    printf("The number of users is ");
    scanf("%d",&num);
    ID=(int*)calloc(num,sizeof(int));
    In=(int*)calloc(num,sizeof(int));
    Exp=(int*)calloc(num,sizeof(int));
    char  **Name=(char**)calloc(num,sizeof(char*));
    for(i=0;i<num;i++)
    {
        Name[i]=(char*)calloc(N,sizeof(char));
    }
    Input(ID,Name,In,Exp,num);
    Print(ID,Name,In,Exp,num);

}
else if(choice==2)
{

}
else if(choice==3)
{

}
else if(choice==4)
{

}
else if(choice==5)
{

}
else if(choice==6)
{

    Print(ID,Name,In,Exp,num);
}
else if(choice==0)
{
    int i;
    free(ID);
    free(In);
    free(Exp);
    for(i=0;i<num;i++)
    {
        free(Name[i]);
    }
    free(Name);
    return 0;
}
else
{
    printf("error!\n");
}
}

void Input(int *ID,char *Name[],int *In,int *Exp,int num)
{
    int i;
    for(i=0;i<num;i++)
    {
        printf("Please input record:\n");
        scanf("%d%s%d%d",&ID[i],Name[i],&In[i],&Exp[i]);
    }
    printf("record end!\n");
}
  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-06 15:28
    关注

    你说的是哪个循环?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 11月6日

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题