关于带伸缩性型数组的问题

img
这里cprimer讲带伸缩性数组,请问这里编译不过的原因是什么(一个很基础的程序)

如果我的回答对你有帮助,请采纳谢谢,谢谢

返回值是一个 void* ,而你直接赋值,需要在前面加个强制转换

第 12 行应改为:

a = (struct evaluate*)malloc(sizeof(struct evaluate) + n * sizeof(int));

malloc返回的是一个通用指针(void *),这种指针并没有结构体的成员的信息,你必须强制转换成结构体指针才能正常使用
改成a = (struct evaluate*)malloc(sizeof(struct evaluate) + n * sizeof(int));就好了

malloc用法有点问题