我正在尝试创建3D网格,将数据存储到其中并打印存储的信息。但是,它不打印任何东西。看起来它存储信息但不打印它。我可以打印p.a p.b p.c但不打印THREEG。任何帮助。
typedef struct {
double a;
double b;
double c;
} MYGR;
void My2DGrid()
{
int i, j, k =0;
MYGR THREEG[5*5*5];
for ( i = 0; i < 5 ; i++) {
for ( j = 0; j < 5 ; j++) {
for (k = 0; k < 5; k++) {
MYGR p;
p.a =1; p.b=2, p.c=3;
THREEG[i+5*j+5*5*k] = MYGR(p);
cout << i<< "\t" <<j << "\t" << k <<"\t" << THREEG[i+5*j+5*5*k] << endl;
}
}
}
}
int main()
{
My2DGrid();
}
答案 0 :(得分:1)
你做作业:
THREEG[i+5*j+5*5*k] = MYGR;
(因为您没有为MYGR定义的构造函数)将未定义(随机)值分配给您的数组。我认为你的意思是:
THREEG[i+5*j+5*5*k] = p;
您也没有定义运算符来打印结构,例如:
std::ostream& operator<<(std::ostream &os, const MYGR &p)
{
os << p.a << " " << p.b << " " << p.c;
return os;
}