0

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

从我读过的内容来看,上面应该非常接近正确,但我的编译器强调了=inLINE = malloc((facets*3)*sizeof(linesegs));并给出了以下错误:

“void*”类型的值不能分配给“linesegs”类型的实体

我从中了解到这一点的地方并不完全清楚它们应该去哪里,以及它们应该以什么顺序去。我尝试移动东西并使用指针无济于事。希望这个问题将通过提供一个没有混淆的可靠答案来帮助其他人(和我)=)。在此先感谢您的帮助。

4

1 回答 1

0

这会解决错误或警告吗?

LINE = (struct linesegs *)malloc((facets*3)*sizeof(struct linesegs));
于 2013-10-18T00:33:49.860 回答