还有一个类似的问题在这里.
我有以下结构:
struct SimpleXY
{
double x;
double y;
};
struct SimpleEdge
{
SimpleXY first;
SimpleXY second;
}
struct SimpleEdgeList
{
uint num_edges;
SimpleEdge *SimpleEdges;
};
Run Code Online (Sandbox Code Playgroud)
什么是释放记忆的正确方法SimpleEdgeList?这是我目前的方法,但我想知道我是否应该手动释放first和second数据字段.
void Free(SimpleEdgeList *myList)
{
free(myList->SimpleEdges);
}
Run Code Online (Sandbox Code Playgroud)
这是一个C结构,我正在寻找像C一样的内存释放.
您无需手动释放字段.释放引用的内存时myList->SimpleEdgeList,调用free()将清除整个内存块,包括您提到的两个字段.由于这些字段不包含指向任何其他对象的指针,因此您无需进入它们以回收内存.