多級指針的應用
/*
- 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;
}