sizeof(array)/ sizeof(int)怎么没给我正确的数组长度?

时间:2014-12-12 22:27:40

标签: c arrays merge size

int *merge (int *array1, int *array2){
    int iL = sizeof(array1)/sizeof(int);
    int jL = sizeof(array2)/sizeof(int);
    printf ("%d, %d\n", iL,jL);
    int *mergeList = (int*)malloc((iL + jL) *sizeof(int));
    int i=0,j=0,k=0;
    while (i < iL && j < jL){
        if (array1[i]<array2[j]){
            mergeList[k++] = array1[i++];
        }
        else{
            mergeList[k++] = array2[j++];
        }
    }
    while (i < iL){
        mergeList[k++] = array1[i++];
    }
    while (j<jL){
        mergeList[k++] = array2[j++];
    }
    return mergeList;
}

所以输入方法的两个列表是

list1 [6] = {2,-1,0,3,1,6};
list2 [2] = {-6,-10};

但由于某种原因,当他们的方法打印出每个输入数组的长度时, 产量:2,2。 我已经坚持了2个小时......

0 个答案:

没有答案