二级指针做输入的3种模型-3

来源:互联网 发布:淘宝的1元秒杀在哪找 编辑:程序博客网 时间:2024/06/05 12:50

自己申请内存;

先申请内存做指针,然后在指针区域申请内存存值


#include "stdio.h"#include "string.h"#include "stdlib.h"char **getmems(int num){char** p2=NULL;int i=0;p2=(char**)malloc(sizeof(char*) * num);for(i=0;i<num;i++){p2[i] = (char*)malloc(100);sprintf(p2[i],"%d%d%d",i+1,i+2,i+3);}return p2;}void prints(char **p2,int num){int i=0;for(i=0;i<num;i++){printf("%s\n",p2[i]);}}void freeit(char **p2,int num){int i=0;for(i=0;i<num;i++){if(p2[i]!=NULL){free(p2[i]);p2[i]=NULL;}}if(p2!=NULL)free(p2);}void main(){char **p2=NULL;int num=10;int i=0,j=0;int len1=0,len2=0,len3=0;char *remp=NULL;char buff[100];//申请内存p2=getmems(num);//打印printf("start\n");prints(p2,num);for(i=0;i<num;i++){for(j=i+1;j<num;j++){if(  strcmp(p2[i],p2[j]) <0 ){//交换指针/*remp=p2[i];p2[i]=p2[j];p2[j]=remp;*///交换内存strcpy(buff,p2[i]);strcpy(p2[i],p2[j]);strcpy(p2[j],buff);}}}//打印printf("end\n");prints(p2,num);//释放内存freeit(p2,num);system("pause");}


原创粉丝点击