Consider the following C code:
#include <stdio.h>
int *assignval(int *x, int val)
{ *x = val;
return x;
}
void main( )
{ int* x = malloc (size of (int));
if (NULL = = x) return;
x = assignval(x, 0);
if(x)
{ x = (int*) malloc (size of (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: