C++ 无法将值分配给结构
我无法为struct,d赋值。 它总是0。 我找不到窃听器 我的print语句总是打印x为:0,y为0C++ 无法将值分配给结构,c++,pointers,struct,C++,Pointers,Struct,我无法为struct,d赋值。 它总是0。 我找不到窃听器 我的print语句总是打印x为:0,y为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"
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;
disc-dArr[30];
结构盘*d;
对于(int i=0;ipos[0];
y_offset=d->pos[1];
printf(“x为:%f\n”,x_偏移量);
printf(“y为:%f\n”,y\u偏移量);
}
类型定义结构光盘{
双位[2];
}圆盘;
光盘编号[30];
结构盘*d;
对于(int i=0;i
假设numDiscs==sizeof(dArr)/sizeof(*dArr)
,尝试访问地址&(dArr[numDiscs])
处的对象会产生未定义的行为
您可能需要的是
&(dArr[i])
有声明吗?磁盘定义在哪里?您为它分配了内存吗?在尝试分配给结构之前,您需要使d
指向一个结构。现在您已经更改了代码,您可能需要的是d=&(dArr[i])
,而不是d=&(dArr[numDiscs])
。
disc dArr[30];
struct disc *d ;
for (int i = 0; i < numDiscs; i++)
{
d = &(dArr[numDiscs]);
...
}