在结构中动态分配一个 int 数组
dynamically allocating an int array inside a structure
我正在尝试为结构内部的成绩动态创建一个整数数组,但我有一个小语法错误。这是我的代码:
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);
}
我得到的错误是:赋值从指针生成整数而不强制转换。
enroll->enrollment_list[enroll->Enrollment_Count].Grade_Cap = malloc(sizeof(int)*2);
您正在尝试将内存分配给 Grade_Cap
,这不是指针。它是一个整数变量。如果你想分配内存,你需要将它声明为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);
}
我得到的错误是:赋值从指针生成整数而不强制转换。
enroll->enrollment_list[enroll->Enrollment_Count].Grade_Cap = malloc(sizeof(int)*2);
您正在尝试将内存分配给 Grade_Cap
,这不是指针。它是一个整数变量。如果你想分配内存,你需要将它声明为int *
。