二级指针的三种内存模型 分类: 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

版权声明:本文为博主原创文章,未经博主允许不得转载。