Consider the following C code: #include<stdio.h> int *assignval (int *x, int…

GATE · 2017 · CS · Set 1 · Computer Science & IT

Consider the following C code:

#include<stdio.h> int *assignval (int *x, int val) { *x = val; return x; } void main () { int *x = malloc(sizeof(int)); if (NULL == x) return; x = assignval (x,0); if (x) { x = (int *)malloc(sizeof(int)); if (NULL == x) return; x = assignval (x,10); } printf("%d\n", *x); free(x); }

The code suffers from which one of the following problems:

  1. A.

    compiler error as the return of malloc is not typecast appropriately.

  2. B.

    compiler error because the comparison should be made as x == NULL and not as shown.

  3. C.

    compiles successfully but execution may result in dangling pointer.

  4. D.

    compiles successfully but execution may result in memory leak.

Attempted by 228 students.

Sign up free to check your answer

Sign up free

Explore the full course: Gate Guidance By Sanchit Sir

Loading lesson…