struct Link_Info
{
int Destination_VertexID;
int Vertex_To_Vertex_LinkID;
int Cost_of_Link;
};
struct Vertex_Info {
int OutDegree;
int Vertex_Num;
Link_Info* out = new Link_Info[8];
};
Vertex_Info* Vertex_Chain = new Vertex_Info [600];
Vertex_Chain[0].Vertex_Num
->
600
我使用下面的方式释放的
for (int i = 0; i < Vertex_Chain[0].Vertex_Num; i++)
{
delete [] Vertex_Chain[i].out;
}
delete[] Vertex_Chain;
可以给结构体编写析构函数。
struct Vertex_Info {
...
~Vertex_Info ()
{
delete[] out;
}
}
你的外侧循环的是Vertex_Chain数组长度,不是Vertex_Chain第一个元素的Vertex_Num长度