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:
- A.
compiler error as the return of malloc is not typecast appropriately.
- B.
compiler error because the comparison should be made as x == NULL and not as shown.
- C.
compiles successfully but execution may result in dangling pointer.
- D.
compiles successfully but execution may result in memory leak.
Attempted by 228 students.
Sign up free to check your answer
Sign up freeLoading lesson…