关于 c:如何在结构数组中为 typedef 结构分配内存
How to allocate memory to a typedef struct within array of structs
我一直在尝试为指针变量分配内存,但它一直给我错误或分段错误。如何正确初始化指向课程结构的指针变量?
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
typedef struct {
char courseId[7]; char courseName[10]; } Course; struct Student{ int main() { for (int i = 0; i < numStudents; i++) { |
相关讨论
- 避免无宽度 scanf("%s", student[i]->firstName); 字符串输入。最好使用 char firstName[10]; .... scanf("%9s", student[i]->firstName);
您几乎完成了,需要进行一些更正。
Student 中的课程对象不需要是指针。 Student 结构的数组需要动态分配,然后再释放。 -> 用作取消引用运算符,但在您的情况下, [] 已经取消引用,因此您将使用 . 而不是 -> 并且当您为结构数组分配内存时,它需要是结构的大小乘以结构的数量。 malloc(sizeof(struct Student)*numStudents);
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
typedef struct {
char courseId[7]; char courseName[10]; } Course; struct Student{ int main() { for (int i = 0; i < numStudents; i++) { |
我试图对您的代码进行最小的更改。
相关讨论
- 您的回答对我有用,非常感谢!