【发布时间】:2021-09-12 07:43:02
【问题描述】:
我需要声明一个带有可变长度向量的结构..
使用以下解决方案:
#include <stdio.h>
struct S
{
int len;
double *x;
double *y;
double z;
};
int main()
{
double x[] = { 1., 2., 3., 4. };
double y[] = { 1.1, 2.2, 3.5, 4.0 };
//struct S myS = { .len = 4, .x = x, .y = y, .z = 5.1 };
struct S myS = { 4, x, y, 5.1 };
return 0;
}
【问题讨论】:
-
您可以使用指针来代替
double *x,也可以将数组大小设置为最大值,例如double x[10000]。 -
你不能做你正在尝试的事情。 C 有一种叫做灵活数组成员的东西,但只能有一个,而且它必须是最后一个成员。此外,您无法使用初始化程序设置其大小。