【发布时间】:2026-01-16 12:15:02
【问题描述】:
我正在尝试将结构传递给将打印内容的函数。我正在寻求任何类型的提示或建议。
结构
struct student
{
char *fname;
char *lname;
float score;
};
创建原型
void printStudents(struct student **s, int student_size);
主要功能
int main()
{
int base_number, i;
int students;
struct student *ptr;
printf("Enter Number of Students: ");
scanf("%d", &base_number);
ptr = (struct student*)malloc(base_number * sizeof(struct student));
students = base_number;
printf("\nEnter Student Information\nExample: John Smith 98.50\n\n");
for(i = 0; i < base_number; i++)
{
printf("Student %d: ", i+1);
scanf("%s %s %f", &(ptr+i)->fname, &(ptr+i)->lname, &(ptr+i)->score);
}
printStudents(&ptr, students);
return 0;
}
printStudents 函数
void printStudents(struct student **s, int student_size)
{
int i;
struct student *temp = (struct student*)malloc(student_size * sizeof(struct student));
for(i = 0; i < student_size; i++)
printf("%s %s %.2f\n", (temp+i)->fname, (temp+i)->lname, (temp+i)->score);
}
【问题讨论】:
-
为什么在函数中需要另一个
struct temp。您已经将指针传递给struct student类型的指针,因此只需以与temp相同的方式打印值。
标签: c pointers memory dynamic structure