CH1314QM
静心而为
2016-03-31 07:21
采纳率: 50%
浏览 2.3k

在一个结构体中动态创建另一个结构体数组,那么怎样释放内存!求助,谢谢了!

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];

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • caozhy
    已采纳

    Vertex_Chain[0].Vertex_Num
    ->
    600

    点赞 评论
  • CH1314QM
    静心而为 2016-03-31 07:26

    我使用下面的方式释放的
    for (int i = 0; i < Vertex_Chain[0].Vertex_Num; i++)
    {
    delete [] Vertex_Chain[i].out;
    }
    delete[] Vertex_Chain;

    点赞 评论
  • caozhy
     可以给结构体编写析构函数。
    struct Vertex_Info {
    ...
    ~Vertex_Info ()
    {
    delete[] out;
    }
    }
    
    点赞 评论
  • caozhy

    你的外侧循环的是Vertex_Chain数组长度,不是Vertex_Chain第一个元素的Vertex_Num长度

    点赞 评论

相关推荐