在 C 中声明一个与数组一起使用的结构

Declaring a struct which works with an array in C

程序应该计算向量的大小,然后打印出结果。我可以管理所有这些工作,但我在实际声明结构时遇到了问题。

程序将提示用户输入他们想要存储的矢量数。

所以我没有分配我的结构数组,稍后我会用 malloc()/free()

但这就是我想要做的

struct vector *array
{
    double x;
    double y;
    double z;
}

x.y.z 是向量的点,我假设数组的每个元素都包含 x、y、z 但是这在我编译时不起作用,它给我错误“,”"asm"之前没有找到{所以我把=像这样

struct vector *array=
    {
        double x;
        double y;
        double z;
    }

然后它在找不到双精度之前给了我表达式

我做错了什么??

没弄清楚再说。

我试图让用户输入要使用的向量数量,然后该数字将在 malloc 中用于为结构数组分配内存,我假设数组的每个元素都将包含 x.y.z

结构的新手,因此非常感谢帮助。

struct vector
{
    double x;
    double y;
    double z;
};

struct vector *array;

现在数组是指向结构向量的指针,您可以通过使用 malloc() 分配所需的内存来创建它的实例,并为每个实例的结构字段赋值。

喜欢

array = malloc(sizeof(struct vector) *n ); /* n = size inputted by user */
for(i=0;i<n;i++)
{
  array[i].x = <someval>;
  array[i].y = <someval>;
  array[i].z = <someval>;
}