以下 C 代码给出错误:
incompatible types in assignment of ‘int’ to
‘int [(((sizetype)(((ssizetype)m) -1)) 1)]’
在我调用递归函数的行上:
int mergeSort(int arr[], int n)
{
if (n > 1) {
int m = (int)(n / 2);
int A1[m]; // array 1 --> 1 TO M
int A2[n-m]; // array 2 --> M + 1 TO N
int temp = m+1;
for (int i = 0; i < n; i++) {
if (i == m) break;
A1[i] = arr[i];
A2[i] = arr[temp++];
}
A1 = mergeSort(A1, m); //error happens here, assigning an
//integer into an integer array.
A2 = mergeSort(A2, n - m);
arr = merge(A1, A2);
}
return arr;
}
这个错误是什么意思?