二级指针的三种内存模型 分类: C语言学习 2015
/* Level tow point have three cache model */ #include#include int Print(char**pArr); int Print02(char**pArr,int num); int GetMem(char***thirdModel,int len); int Destory(char***thirdModel,int len); int main() { int i=0; char **thirdModel=NULL; //first cache model char *firstModel[10]={"abc","linux","unix",0}; //second cache model char secondModel[3][10]={"abc","linux","unix"}; //third cache model GetMem(&thirdModel,4); strcpy(*(thirdModel+0),"abc"); strcpy(*(thirdModel+1),"linux"); strcpy(*(thirdModel+2),"unix"); printf("firstModel start\n"); Print(firstModel); printf("secondModel start \n"); Print02(secondModel,4); printf("thirdModel start\n"); Print(thirdModel); Destory(&thirdModel,4); return 0; } int Print(char**pArr) { int ret=0,i=0; if(NULL==pArr) { ret=-1; printf("arg is null error:%d\n",ret); return ret; } while(*pArr) { printf("%s\n",*pArr); ++pArr; } return ret; } int Print02(char**pArr,int num) { int ret=0,i=0; //二级指针和指向数组的指针不一样。 char(*arr)[10]=pArr; if(NULL==pArr) { ret=-1; printf("arg is null error:%d\n",ret); return ret; } for(i=0;i
版权声明:本文为博主原创文章,未经博主允许不得转载。