Consider the C code fragment given below gate computer science 2017
The Eduladder is a community of students, teachers, and programmers just interested to make you pass any exams. So we solve previous year question papers for you.
See Our team
Wondering how we keep quality?
Got unsolved questions?

Hey! Want to work with us? Our youtube channel See our Jd Want to apply? Do it today

### Use Me  ?

New searches
GATE-Computer-Science-Engineering-2017-->View question

## Consider the C code fragment given below. -gate computer science 2017

typedef struct node
{
int data;
node* next ;
} node;

void join(node* m, node* n)
{
node* p = n;
while (p->next != NULL)
{
p = p->next;
}
p–>next = m;
}
Assuming that m and n point to valid NULL- terminated linked lists, invocation of join will :-
A) append list m to the end of list n for all inputs
B) either cause a null pointer dereference or append list m to the end of list n
C) cause a null pointer dereference for all inputs.
D) append list n to the end of list m for all inputs.

By:satyashiromani

Taged users:

Likes:
|satyashiromani|deepuckraj

Dislikes:
Be first to dislike this question

B) either cause a null pointer dereference or append list m to the end of list n

Explanation:
As it is stated in the question, that m and n are valid Lists but not explicitly specified if the lists are empty or not. We can have two cases:
Case 1: If lists are not NULL : Invocation of join will append list m to the end of list n if the lists are not NULL. For Example:Before join operation : m =1->2->3->4->5->null n =6->7->8->9->nullAfter join operation : 6->7->8->9->1->2->3->4->5->null
Case 2: If lists are NULL : If the list n is empty and itself NULL, then joining and referencing would obviously create NULL pointer issue.
Therefore option B is correct

deepuckraj

Likes:
Be first to like this answer

Dislikes:
Be first to dislike this answer