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

我从中学到的地方还不清楚,他们去哪儿,应该去哪儿。我试着四处移动东西,玩指针无济于事。希望这个问题能够提供一个可靠的答案,而不会引起混淆(=),从而对其他人(和我)有所帮助。在此先感谢您的帮助。

最佳答案

这样可以解决错误或警告吗?

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

关于c - C中的动态结构数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19439522/

10-12 16:13