Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法将值分配给结构_C++_Pointers_Struct - Fatal编程技术网

C++ 无法将值分配给结构

C++ 无法将值分配给结构,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"

我无法为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", 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]);
    ...
}