我在一个函数中创建了一个链表,在程序的其余部分我使用指针访问该链表。现在我如何在我的程序结束时释放这个链表?我是简单地使用 free(CircuitData)
还是必须遍历释放每个节点的列表?写这个我在想释放每个节点是显而易见的答案......
附带说明一下,我还想问一下如何确定程序期间分配的所有内存是否已正确释放?
ListNodeType *CircuitData;
CircuitData = NULL;
ReadFile(&CircuitData, &numEl, &numNodes);
void ReadFile(ListNodeType **CircuitData, int *numEl, int *numNodes){
ListNodeType *newPtr, *tempPtr;
newPtr = malloc(sizeof(ListNodeType));
*CircuitData = newPtr;
newPtr->nextPtr = NULL;
//MORE CODE
最佳答案
我会想到这样的事情:
struct node
{
int data;
node* next;
} *head;
void deleteAllNodes(node* start)
{
while (start != NULL)
{
node* temp = start;
start = start -> next;
free(temp);
}
}
关于c - 如何释放链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19505196/