Consider the following ANSI C program: #include <stdio.h> #include <stdlib.h>…
GATE · 2021 · CS · Set 2 · Computer Science & IT
Consider the following ANSI C program:
#include <stdio.h>
#include <stdlib.h>
struct Node{
int value;
struct Node *next;};
int main( ) {
struct Node *boxE, *head, *boxN; int index=0;
boxE=head= (struct Node *) malloc(sizeof(struct Node));
head->value = index;
for (index =1; index<=3; index++){
boxN = (struct Node *) malloc (sizeof(struct Node));
boxE->next = boxN;
boxN->value = index;
boxE = boxN; }
for (index=0; index<=3; index++) {
printf("Value at index %d is %d\n", index, head->value);
head = head->next;
printf("Value at index %d is %d\n", index+1, head->value); } }
Which one of the following statements below is correct about the program?
- A.
Upon execution, the program creates a linked-list of five nodes.
- B.
Upon execution, the program goes into an infinite loop
- C.
It has a missing return which will be reported as an error by the compiler
- D.
It dereferences an uninitialized pointer that may result in a run-time error
Attempted by 199 students.
Show answer
Correct answer: D
The worked solution is available to enrolled students.
Video solution available to enrolled students.
Explore the full course: Iocl Engineers Officers Grade A Paper 2