指针数组的应用

code:该程序为了获得字符串中的单词,并对该单词进行存储,以形成字符串数组。可以采用指向指针的指针来做。
	        i=0;
		len=0;
		cnt=0;
		st=0;
		//输入字符串,从字符串中提取单词进行存储
		char **pp=(char**)malloc(cnt*sizeof(char*));//分配存储字符串数组首地址的空间
		pp[1];
		char ***sp=&pp;//pp的首地址

		char *p;
		while(*(src+i)!='\0'){
			if(*(src+i)==' ')//当遇到空格的时候进行提取
			{
			
				p=(char*)malloc((len+1)*sizeof(char));
				strncpy(p,src+st,len);
				*(p+len)='\0';
				pp[cnt]=p;//通过malloc分配后,p实际上成了指针数组,所以为了获得首地址,直接取数组名

				len=-1;
				cnt++;
				st=i+1;
			}
			i++;
			len++;
			if(*(src+i)=='\0')
			{
				p=(char*)malloc((len)*sizeof(char));
				strncpy(p,src+st,len);
				*(p+len)='\0';
				pp[cnt]=p;
			}

		}

通过malloc在堆上分配空间之后,获得该空间的地址并存储在指针,实际上此时指针是指针数组,为了获得该指针数组的地址,只需要取数组名即可。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值