void MergeSort(int (*k)[6],double *l, double *m, int left, int right)
{
int len = right - left;
int mid = (right + left) / 2;
double *sort=NULL;
double *sort3=NULL;
int (*sort2)[6]=NULL;
int lef = left;
int rig = mid + 1;
int i = 0;
int j,ii;
if (len <= 0)
{
return;
}
MergeSort(k,l,m, left, mid);
MergeSort(k,l,m, mid + 1, right);
sort = (double*)calloc((len + 2),sizeof(double));
sort3 = (double*)calloc((len + 2),sizeof(double));
sort2 = (int(*)[6])calloc((len + 2),sizeof(int[6]));
while (lef <= mid&&rig <= right)
{
if (m[lef] <= m[rig])
{
sort[i] = m[rig];
sort3[i] = l[rig];
for (j = 0; j < 6; j++)
{
sort2[i][j] = k[i][j];
}
rig++;
}
else
{
sort[i] = m[lef];
sort3[i] = l[rig];
for (j = 0; j < 6; j++)
{
sort2[i][j] = k[i][j];
}
lef++;
}
i++;
}
while (lef <= mid)
{
sort[i] = m[lef];
sort3[i] = l[rig];
for (j = 0; j < 6; j++)
{
sort2[i][j] = k[i][j];
}
i++;
lef++;
}
while (rig <= right)
{
sort[i] = m[rig];
sort3[i] = l[rig];
for (j = 0; j < 6; j++)
{
sort2[i][j] = k[i][j];
}
i++;
rig++;
}
for (j = 0; j < i; j++)
{
m[left] = sort[j];
l[left] = sort3[j];
for (ii = 0; ii < 6; ii++)
{
sort2[left][ii] = k[j][ii];
}
left++;
}
free(sort);
free(sort2);
free(sort3);
}
=============================================
free(sort2) 부분에서 에러가 나는것 같은데....
휴대폰으로 돌려보면 difree라고 뜨는데...
지나가는 말 한마디라도 부탁드립니다 ㅠㅠ
흠 방학일텐데 C공부하는거보니 학생은 아닌데 왜 공부하심??
나노블럭하고 c만지는게 요새 재밌어서 하고있어요..