注册 登录
编程论坛 C++教室

怪异问题 在线等候回答

freeflywyx 发布于 2008-06-23 21:42, 744 次点击
我自己写了个比较大的struct里面有自己写的类也有int flag
我初始化的时候赋值给flag的时候是0
但是我运行一下后flag的值是-858993460
请问这个是怎么回事?
要怎么解决
7 回复
#2
zjl1382008-06-23 21:47
struct里面有自己写的类也有int flag?
这句怎么理解?

你可以发你的出错代码出来看一下.

顺便发一下错误提示
#3
freeflywyx2008-06-23 21:56
没有语法错误
struct vector3m
{
public:
    int id;
    point3d stress;
    vector3d v_max,v_mid,v_min;
         int z_style;
    point3d p0,p1,p2,p3,p4,p5,p6,p7;
    vector3m(int id,
    double stress_max,double stress_mid,double stress_min,
    double v_maxx,double v_maxy,double v_maxz,double v_midx,double v_midy,double v_midz,double v_minx,double v_miny,double v_minz,
    int z_style,
     double p0x,double p0y,double p0z
     double p1x,double p1y,double p1z,
     double p2x,double p2y,double p2z,
     double p3x,double p3y,double p3z,
     double p4x,double p4y,double p4z,
     double p5x,double p5y,double p5z,
     double p6x,double p6y,double p6z,
     double p7x,double p7y,double p7z):
     stress(stress_max,stress_mid,stress_min),
     v_max(v_maxx,v_maxy,v_maxz),v_mid(v_midx,v_midy,v_midz),v_min(v_minx,v_miny,v_minz),
     p0(p0x,p0y,p0z),p1(p1x,p1y,p1z),p2(p2x,p2y,p2z),p3(p3x,p3y,p3z),p4(p4x,p4y,p4z),
             p5(p5x,p5y,p5z),p6(p6x,p6y,p6z),p7(p7x,p7y,p7z) {}
};

这个就是我的结构体
程序中还建立了一个容器vector<vector3m> r_vct_vector3m

初始化一组数据后
vector3m tmp_3m(id,
              stress_max, stress_mid,stress_min,
              v_maxx, v_maxy,v_maxz,v_midx, v_midy,v_midz, v_minx, v_miny, v_minz,
              z_style,
              p0x, p0y, p0z,
              p1x, p1y, p1z,
              p2x, p2y, p2z,
              p3x, p3y, p3z,
              p4x, p4y, p4z,
              p5x, p5y, p5z,
              p6x, p6y, p6z,
              p7x, p7y, p7z);
 
vct_vector3m.push_back(tmp_3m);/////id=9  和 z_style=0
这步后里面的id  和 z_style的值变成了-858993460
#4
freeflywyx2008-06-23 21:58
不是很熟
所以感觉问题很怪
#5
zjl1382008-06-23 22:08
你这样初始化啊:
vector3m tmp_3m(id,
              stress_max, stress_mid,stress_min,
              v_maxx, v_maxy,v_maxz,v_midx, v_midy,v_midz, v_minx, v_miny, v_minz,
              z_style,
              p0x, p0y, p0z,
              p1x, p1y, p1z,
              p2x, p2y, p2z,
              p3x, p3y, p3z,
              p4x, p4y, p4z,
              p5x, p5y, p5z,
              p6x, p6y, p6z,
              p7x, p7y, p7z);

不是要给具体数值吗?

你这样试一下:
vector3m tmp_3m(9,......
..................
  );
#6
freeflywyx2008-06-23 23:23
id,
              stress_max, stress_mid,stress_min,
              v_maxx, v_maxy,v_maxz,v_midx, v_midy,v_midz, v_minx, v_miny, v_minz,
              z_style,
              p0x, p0y, p0z,
              p1x, p1y, p1z,
              p2x, p2y, p2z,
              p3x, p3y, p3z,
              p4x, p4y, p4z,
              p5x, p5y, p5z,
              p6x, p6y, p6z,
              p7x, p7y, p7z
这些参数都已经赋值了  
这里我省略了没有写出来而已
问题就是id  z_style 对应的值不对(本来应该是9和0的)同时变成了-858993460

其他值都对  
所以觉得很奇怪
#7
leius2008-06-24 01:21
你初始化的时候没给id和z_style赋值
你可以加上
{
this->id=id;
this->z_style=z_style;
}
也可以同其它初始化一样
#8
freeflywyx2008-06-24 10:43
thanks
结构体里面的问题
非常感谢
1