#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