我在 C 中有一个结构,其成员是浮点数组。我想在编译时初始化它,如下所示:
typedef struct curve {
float *xs;
float *ys;
int n;
} curve;
curve mycurve1 = {
{1, 2, 3},
{4, 2, 9},
3
};
curve mycurve2 = {
{1, 2, 3, 4},
{0, 0.3, 0.9, 1.5},
4
};
但我得到编译错误。
一种可能的解决方案可能是在结构中使用数组而不是指针。这是来自此处的一个非常相似的问题的公认答案:https ://stackoverflow.com/a/17250527/1291302 ,但这种方法的问题是我不知道 typedef 时的数组大小。不仅如此,我可能还想初始化另一条更大的曲线。
另一种方法可能是使用 malloc,但我发现这种做法有点过头了,因为我在编译时就知道数组大小,而且我不需要在运行时更改它。
我不知道其他可能有用的方法。也许将数组转换为指针?- 我真的不知道我会如何处理。