简单指向结构的指针

时间:2013-06-23 15:40:54

标签: c pointers struct

我正在尝试编写简单的程序来收集特定数量的学生的数据并最终将其输出。输入一名学生的数据后,我的程序崩溃了。

以下是代码:

#include <stdio.h>
#include <stdlib.h>
typedef struct Student Student;
struct Student{
    char name[20];
    char lastname[20];
    int age;
};

main() {
    int i;
    int n;
    scanf("%d",&n);


    Student *pStudents = NULL;
    pStudents = (Student*)malloc(n*sizeof(Student));

    for(i=0;i<n;i++) {
        printf("Enter the students name: \n");
        scanf("%s",(pStudents+i)->name);
        printf("Enter lastname: \n");
        scanf("%s",(pStudents+i)->lastname);
        printf("Enter age: \n");
        scanf("%d",(pStudents+i)->age);
    }

    for(i=0;i<n;i++) {
        printf("%s",(pStudents+i)->name);
        printf("%s",(pStudents+i)->lastname);
        printf("%d",(pStudents+i)->age);
    }

} 

提前致谢。

1 个答案:

答案 0 :(得分:5)

   scanf("%d",(pStudents+i)->age);

scanf的参数必须是指针类型。

(pStudents+i)->age更改为&(pStudents+i)->age