在结构中动态分配int数组

时间:2015-10-06 15:04:19

标签: c malloc

我正在尝试为结构内部的成绩动态创建一个int数组但我的语法错误很小。这是我的代码:

typedef struct          
{
    int Stud_ID;
    int class_ID;
    int* Grades;
    int Grade_Cap;
    int Count;
    float Average;
}enrollment;

typedef struct 
{
    int Enrollment_Count;
    int Enrollment_Cap;
    enrollment *enrollment_list;
}enrollments;

void add_grade_space(enrollments *enroll)
{
    enroll->enrollment_list[enroll->Enrollment_Count].Grade_Cap =   malloc(sizeof(int)*2);
}

我得到的错误说:赋值在没有强制转换的情况下从指针生成整数。

1 个答案:

答案 0 :(得分:0)

enroll->enrollment_list[enroll->Enrollment_Count].Grade_Cap =   malloc(sizeof(int)*2);

您正在尝试将内存分配给Grade_Cap,而不是指针。它是一个整数变量。如果你愿意,你需要将它声明为int *来分配内存。