Getting MLE for this C code


#1

Why am I getting MLE for the following code?
void merge(inta,intb,intc,int m,int n)
{
int i=0,j=0,k=0;
while(i<m&&j<n)
{
if(a[i][1]<b[j][1])
{
c[k][0]=a[i][0];
c[k++][1]=a[i++][1];
}
else
{
c[k][0]=b[j][0];
c[k++][1]=b[j++][1];
}
}
while(i<m)
{
c[k][0]=a[i][0];
c[k++][1]=a[i++][1];
}
while(j<n)
{
c[k][0]=b[j][0];
c[k++][1]=b[j++][1];
}
}
void mergesort(int
a,int n)
{
if(n<=1)
return;
intb=(int)malloc(nsizeof(int));
int i,j;
for(j=0;j<n;j++)
b[j]=(int*)malloc(2*sizeof(int));
i=n/2;
mergesort(a,i);
mergesort(a+i,n-i);
merge(a,a+i,b,i,n-i);
for(j=0;j<n;j++)
{
a[j][0]=b[j][0];
a[j][1]=b[j][1];
}
for(i=0;i<n;i++)
free(b[i]);
}
int solve(int** A, int n11, int n12) {
mergesort(A,n11);
int i,cnt=1;
i=1;
int key=A[0][1];
while(i<n11)
{
if(A[i][0]>key)
{
cnt++;
key=A[i][1];
}
i++;
}
return cnt;
}