小编Sum*_*mit的帖子

C中字符串结构变量中的错误赋值

请帮我处理这个代码。为什么将相同的名称分配给所有不同的结构?我是 C 中指针和数组的菜鸟。

struct student
{
    char *name;
    int reg_no;
};
typedef struct student student;

int main()
{
    char choice = 'y';
    char name[30];
    int rg;
    student students[5];
    int n = 0;
    while(choice != 'n')
    {
        printf("enter student's name\n>>");
        gets(name);
        printf("enter student's reg_no\n>>");
        scanf("%d",&rg);
        getchar();
        students[n].name = name;
        students[n].reg_no = rg;
        printf("enter details of more students (y/n)\n>>");
        scanf("%c",&choice);
        getchar();
        n++;
    }
    for(int i=0;i<n;i++)
    {
        printf("Details of student%d :\n",(i+1));
        printf("Name : %s\n",students[i].name );
        printf("Reg no. : %d\n\n",students[i].reg_no );
    }
    return 0; …
Run Code Online (Sandbox Code Playgroud)

c arrays struct pointers c-strings

2
推荐指数
1
解决办法
252
查看次数

标签 统计

arrays ×1

c ×1

c-strings ×1

pointers ×1

struct ×1