C中的动态结构数组

时间:2013-10-18 00:21:22

标签: c arrays dynamic struct structure

我正在尝试使用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”类型的实体

我从中学到的地方并不完全清楚到底是什么,以及它们应该按什么顺序进行。我尝试移动东西并玩指针无济于事。希望这个问题能够帮助其他人(和我)提供一个坚实的答案而不会产生混淆=)。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这会解决错误或警告吗?

LINE = (struct linesegs *)malloc((facets*3)*sizeof(struct linesegs));