我正在尝试使用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/