Question: Consider the following C program fragment: typedef struct list_node { void* data; struct list_node* next; } list_node; list_node* insert(void* d, list_node* L) { list_node* t
- Consider the following C program fragment:
typedef struct list_node {
void* data;
struct list_node* next;
} list_node;
list_node* insert(void* d, list_node* L) {
list_node* t = (list_node*) malloc(sizeof(list_node));
t->data = d;
t->next = L;
return t;
}
list_node* reverse(list_node* L) {
list_node* rtn = 0;
while (L) {
rtn = insert(L->data, rtn);
L = L->next;
}
return rtn;
}
list_node* L = 0;
while (more_elements()) {
L = insert(next_element(), L);
}
L = reverse(L);
Which statement in the above code produces a memory leak? Explain why.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
