Как выделить память члену вложенной структуры - PullRequest
0 голосов
/ 26 мая 2020

Каким будет правильный синтаксис для выделения памяти для оценок для каждого массива разделов типов? Могу ли я объявить переменную, указывающую на эту структуру, и разместить ее таким образом? Или мне нужно сначала go просмотреть структуру курса?

Я выделил: 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));

1 Ответ

0 голосов
/ 26 мая 2020

здесь вы выделяете массив курсов: 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));
}

** вы должны проверить каждый mallo c, если он завершился неудачно или успешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...