【发布时间】:2020-09-09 08:37:15
【问题描述】:
我无法为结构 d 赋值。 它始终为 0。 我找不到错误。
我的打印语句总是打印 x is: 0, y is 0
disc dArr[30];
struct disc *d ;
for (int i = 0; i < numDiscs; i++)
{
d = &(dArr[numDiscs]);
x_offset = d->pos[0];
y_offset = d->pos[1];
printf("The x is: %f\n", x_offset);
printf("The y is: %f\n", y_offset);
}
typedef struct disc{
double pos[2];
} disc;
【问题讨论】:
-
有声明吗?
-
光盘在哪里定义?
-
你给它分配内存了吗?
-
您需要先让
d指向一个结构,然后再尝试分配给该结构。 -
既然您已经更改了代码,您可能想要的是
d = &(dArr[i])而不是d = &(dArr[numDiscs])。