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?

  1. A.

    Upon execution, the program creates a linked-list of five nodes.

  2. B.

    Upon execution, the program goes into an infinite loop

  3. C.

    It has a missing return which will be reported as an error by the compiler

  4. 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

Loading lesson…