如何将内存分配给嵌套结构的成员

问题描述 投票:-1回答:1

将内存分配给每个类型节数组的分数的正确语法是什么?我可以声明一个指向该结构的变量并以这种方式分配它吗?还是我必须首先学习课程结构?

我已分配:course* ptr = (course*)malloc(*num_courses * sizeof(course));

ptr[i].course_name = (char*)malloc(10);
ptr[i].sections = malloc(ptr[i].num_sections * sizeof(ptr[i].sections));
c dynamic-memory-allocation
1个回答
1
投票

在这里分配课程数组:course* ptr = (course*)malloc(*num_courses * sizeof(course));

分配数组部分(指向学生的指针数组):ptr[i].sections = (student **)malloc(ptr[i].num_sections * sizeof(student *));

要在数组部分中分配每个学生,您必须迭代数组并分配每个学生:

for(int j=0; i<ptr[i].num_sections; i++)
{
   ptr[i].sections[j]=(student *)malloc(sizeof(student));
}

**您必须检查每个malloc是失败还是成功。

© www.soinside.com 2019 - 2024. All rights reserved.