#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
二级指针的第三种内存模型
*/
//打印字符串数组
int printArray(char **arrayStr,int num)
{
int i = 0;
for (i=0; i<num; i++)
{
printf("%s \n",arrayStr[i]);
}
return 0;
}
//排序
int sortArrayStr(char **arrayStr,int num)
{
int i = 0, j = 0;
char *temp = NULL;
for (i=0; i<num; i++)
{
for(j=i+1; j<num; j++)
{
if(strcmp(arrayStr[i],arrayStr[j]) < 0)
{
temp = arrayStr[i];
arrayStr[i] = arrayStr[j];
arrayStr[j] = temp;
}
}
}
return 0;
}
//二级指针的第三种内存模型
int main()
{
int i = 0, j = 0;
char buf[100];
char **arrayStr = (char **)malloc(10*sizeof(char *)); //int array[10]
if (arrayStr == NULL)
{
return;
}
for (i=0; i<10; i++)
{
arrayStr[i] = (char *) malloc(100*sizeof(char)); // char buff[100]
if (arrayStr[i] == NULL)
{
printf("ddde\n");
return;
}
sprintf(arrayStr[i],"%d%d%d",i,i,i);
}
printf("排序之前\n");
printArray(arrayStr,10);
sortArrayStr(arrayStr,10);
printf("排序之后\n");
printArray(arrayStr,10);
for(i=0; i<10; i++)
{
free(arrayStr[i]);
}
if(arrayStr != NULL)
{
free(arrayStr);
}
system("pause");
return 0;
}原文地址:http://skyarac.blog.51cto.com/5324985/1598783