C++二级指针第三种内存模型
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void main()
{
? ? int i = 0, j = 0;
? ? char buf[100];
? ? char **myarray = (char **)malloc(10*sizeof(char*)); //int array[10]
? ? if (myarray == NULL)
? ? {
? ? ? ? return;
? ? }
? ? for (i=0; i<10; i++)
? ? {
? ? ? ? myarray[i] = (char *)malloc(100*sizeof(char)); //char buf[100];
? ? ? ? if (myarray[i]? == NULL)
? ? ? ? {
? ? ? ? ? ? printf("ddddde\n");
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? sprintf(myarray[i],"%d%d%d ", i, i, i);
? ? }
? ? //第三种内存模型打印
? ? printf("排序之前\n");
? ? for (i=0; i<10; i++)
? ? {
? ? ? ? printf("%s\n", myarray[i]);
? ? }
? ? //排序
? ? for (i=0; i<10; i++)
? ? {
? ? ? ? for (j=i+1; j<10; j++)
? ? ? ? {
? ? ? ? ? ? if (strcmp(myarray[i], myarray[j]) < 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? strcpy(buf, myarray[i]);
? ? ? ? ? ? ? ? strcpy(myarray[i], myarray[j]);
? ? ? ? ? ? ? ? strcpy(myarray[j], buf);
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? //第三种内存模型打印
? ? printf("排序之后\n");
? ? for (i=0; i<10; i++)
? ? {
? ? ? ? printf("%s\n", myarray[i]);
? ? }
? ? for (i=0; i<10; i++)
? ? {
? ? ? ? free(myarray[i] );
? ? }
? ? if (myarray != NULL)
? ? {
? ? ? ? free(myarray);
? ? }
? ? system("pause");
}
?
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int? ? printfArr33(char **ArrayStr, int iNum)
{
? ? int i = 0;
? ? for (i=0; i? ? {
? ? ? ? printf("%s \n", ArrayStr[i]);
? ? }
? ? return 0;
}
int sortArrayStr03(char **ArrayStr, int iNum)
{
? ? int i = 0, j = 0;
? ? char *tmp = NULL;
? ? //排序
? ? for (i=0; i? ? {
? ? ? ? for (j=i+1; j? ? ? ? {
? ? ? ? ? ? if (strcmp(ArrayStr[i],ArrayStr[j]) < 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? tmp = ArrayStr[i];
? ? ? ? ? ? ? ? ArrayStr[i] = ArrayStr[j];
? ? ? ? ? ? ? ? ArrayStr[j] = tmp;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return 0;
}
void main()
{
? ? int i = 0, j = 0;
? ? char buf[100];
? ? char **myarray = (char **)malloc(10*sizeof(char*)); //int array[10]
? ? if (myarray == NULL)
? ? {
? ? ? ? return;
? ? }
? ? for (i=0; i<10; i++)
? ? {
? ? ? ? myarray[i] = (char *)malloc(100*sizeof(char)); //char buf[100];
? ? ? ? if (myarray[i]? == NULL)
? ? ? ? {
? ? ? ? ? ? printf("ddddde\n");
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? sprintf(myarray[i],"%d%d%d ", i, i, i);
? ? }
? ? //第三种内存模型打印
? ? printf("排序之前\n");
? ? printfArr33(myarray, 10);
? ? sortArrayStr03(myarray, 10);
? ? //第三种内存模型打印
? ? printf("排序之后\n");
? ? printfArr33(myarray, 10);
? ? for (i=0; i<10; i++)
? ? {
? ? ? ? free(myarray[i] );
? ? }
? ? if (myarray != NULL)
? ? {
? ? ? ? free(myarray);
? ? }
? ? system("pause");
}