C語言多級指針的應用

多級指針的應用

/*
- C++學習筆記01-多級指針的應用
- 2017.03.23
*/

代碼

多級指針應用:

//多級指針應用
int sortArray1Array2_02(char **pArray1, int nArray1Num, char(*pArray2)[30], int nArray2Num, char *** pArray3, int *nArray3Num)
{
    //第一維
    int ret = 0;
    int length = nArray1Num + nArray2Num;
    int i = 0, j = 0, k = 0;
    char **pTmp = (char **)malloc((nArray1Num + nArray2Num)*sizeof(char *));

    if (pTmp == NULL)
    {
        ret = -1;
        return ret;
    }

    for (i = 0; i < length; i++)
    {
        pTmp[i] = (char*)malloc(sizeof(char) * 30);
        if (pTmp[i] == NULL)
        {
            ret = -2;
            return ret;
        }
        memset(pTmp[i], 0, sizeof(char) * 30);
    }

    for (i = 0; i < nArray1Num; i++)
    {
        strcpy(pTmp[i], pArray1[i]);
    }

    for (k = 0; k < nArray2Num; i++,k++)
    {
        strcpy(pTmp[i], pArray2[k]);
    }
    for (i = 0; i < length; i++)
    {
        for (j = i + 1; j < length; j++)
        {
            if (strcmp(pTmp[i], pTmp[j])>0)
            { 
                char tmp[30] = { 0 };
                strcpy(tmp, pTmp[i]);
                strcpy(pTmp[i],pTmp[j]);
                strcpy(pTmp[j], tmp);
            }
        }
    }
    *nArray3Num = length;
    *pArray3 = pTmp;
    return ret;

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章