我正在尝试使用malloc()
创建动态结构数组。我已经在这个论坛上看了一些其他的答案,但是我从一个问题到另一个问题的答案中迷失了。这是我到目前为止所做的:
//This is above main()
struct linesegs
{
float*X;
float*Y;
float*Z;
float*Q;
float*R;
float*S;
};
struct linesegs *LINE;
//Inside main() I have this:
LINE = malloc((facets*3)*sizeof(linesegs));
//Later on I access the struct like so:
LINE[variable].X = SomeFloatNumber
LINE[variable].Y = SomeFloatNumber
LINE[variable].Z = SomeFloatNumber
LINE[variable].Q = SomeFloatNumber
LINE[variable].R = SomeFloatNumber
LINE[variable].S = SomeFloatNumber
根据我的阅读,上述内容应该非常接近正确,但我的编译器在=
中强调了LINE = malloc((facets*3)*sizeof(linesegs));
并给出了以下错误:
“void *”类型的值不能分配给“linesegs”类型的实体
我从中学到的地方并不完全清楚到底是什么,以及它们应该按什么顺序进行。我尝试移动东西并玩指针无济于事。希望这个问题能够帮助其他人(和我)提供一个坚实的答案而不会产生混淆=)。在此先感谢您的帮助。
答案 0 :(得分:0)
这会解决错误或警告吗?
LINE = (struct linesegs *)malloc((facets*3)*sizeof(struct linesegs));