【发布时间】:2015-09-02 04:23:15
【问题描述】:
我正在学习structs,但我仍然对它们以及它们的作用感到困惑。我拥有的代码是我的尝试,我不断收到分段错误。我的主要目标是让用户在调用函数时查看他们想要添加多少学生,以及姓名和分数的每个信息。我还想将数据数组打印给用户。
对于
loadStudentData()函数,我想将newName和NewScore存储到newStudent结构中。对于
printStudentData(),我想为单个学生打印数据然后对于
printStudentArray(),我想在学生数组的每个成员上调用printStudentData()函数。
我的代码是:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STUDENT_NAME_LENGTH 20
typedef struct{
char* name;
int score;
}Student;
void loadStudentData(Student *newStudent,char* newName,int newScore);
int printStudentData(Student student);
void printStudentArray(Student* students, int numStudents);
/*
*
*/
int main(int argc, char** argv) {
int numberOfStudents;
Student *newStudent;
char* newName;
int newScore;
int student;
Student students[numberOfStudents];
printf("how many students: ");
scanf("%d", &numberOfStudents);
loadStudentData(newStudent, newName, newScore);
printStudentArray(students, numberOfStudents);
return (EXIT_SUCCESS);
}
void loadStudentData( Student *newStudent, char* newName, int newScore){
int i;
char *studentName = (char *) malloc(STUDENT_NAME_LENGTH * sizeof(char));
scanf("%s", studentName);
newStudent->name = studentName;
int nScore;
scanf("%d", &nScore);
newStudent[i].score = newScore;
}
int printStudentData(Student student){
int i;
printf("Student name\t%s\n",) ;
printf("Student score\t%d\n",);
}
void printStudentArray(Student* students, int numStudents){
int i;
for (i = 0; i < numStudents; i++) {
printf("Student name\t%s\n", students[i].name);
printf("Student score\t%d\n", students[i].score);
}
}
【问题讨论】:
标签: c arrays function pointers struct