我在这里有一个问题,我需要你的帮助。假设我有两个结构如下:
struct HE_edge
{
double k;
}
struct HE_vert
{
double x,y,z;
HE_edge *e;
}
HE_vert *head=0;
int main()
{
HE_vert *vert;
vert = new HE_vert;
HE_edge *ei;
ei = new HE_edge;
vert->x = 0.5;
vert->y = 1.5;
vert->z = 5.6;
vert->e->k = 10.3;
}
这里的问题是,我想将HE_vert连接到HE_edge。但是当我运行程序时出现错误“halfedge.exe中的0x008c1cd6处的未处理异常...”。有人可以向我解释,为什么会发生这种情况以及如何解决这个问题?在此先感谢:)
答案 0 :(得分:2)
您没有初始化vert->e
字段。
在使用之前添加vert->e = ei
。
答案 1 :(得分:0)
您正在获得异常,因为您尚未为vert->e
分配内存。
在分配值之前使用vert->e=new HE_edge
。
答案 2 :(得分:0)
由于您尚未设置vert->e
,因此在分配给vert->e->k
时会出现未定义的行为。你的意思是将值初始化为
vert->e = e2;
答案 3 :(得分:0)
你的结构最后需要用分号。
您尚未为vert->e
分配任何内存。
请将return EXIT_SUCCESS;
添加到您的主要功能。