【发布时间】:2012-01-27 23:17:08
【问题描述】:
我有一个结构如下:
struct Node{
int *arr;
int *sol;
struct Node *Next;
};
我正在以这种方式创建节点:
Node* MyNode = (Node *)malloc(sizeof (struct Node));
MyNode->arr = malloc(sizeof(int)*N);
MyNode->sol= malloc(sizeof(int)*N);
然后我将 MyNode 添加到链接列表中。如何为列表中的元素释放内存。
这是正确的:
pop(){
free(first->arr);
free(first->sol);
first=first->Next;
}
【问题讨论】:
-
哪种语言?另外:您的结构定义中缺少
;(两种语言)。 -
Next是什么?您的Node不包含Next指针。 -
在 C 中不要强制转换 malloc 的返回值。在 C 中,类型
Node(用于指针 MyNode)不存在。在 C 中,使用 C 编译器编译 C 代码 :)
标签: c++ c memory linked-list free