通过引用将一个向量(数组)的值设置为另一个向量(数组)的值

时间:2017-09-16 01:43:34

标签: c arrays vector

基本上我正在学习C代码,而且目前正在进行任务,我必须在宇宙中创建一个三维空间,在这个空间中有任意数量的小行星,通过重力进行交互。

此时,我正在尝试使用向量P({1,2,3})设置向量A(body [i] .position),如下所示。虽然代码运行时,它只将向量A的第一个值设置为P的第一个值 - 其余值保持为0。

对VectorSet的调用是在main函数中(以及数组p),我只是把它放在这种格式中以方便。

   typedef struct {
       double vector[VECTOR_DIM];
   } Vector;

   typedef struct {
       double mass;
       Vector position;
       Vector velocity;
       Vector accel;
       float colour[3];
   } Object;

   p[VECTOR_DIM] = {1,2,3};
   VectorSet(&bodies[1].position, p);

   void VectorSet(Vector *a, double vec[]) {
       int i;
       for (i = 0; i < VECTOR_DIM; i++) {
           *(double *)(a + 8 * i) = *(double *)(vec + 8 * i);
       }
   }

1 个答案:

答案 0 :(得分:0)

从指针算术中删除8并仅留下i