指针数组的应用

来源:互联网 发布:灰度梯度共生矩阵 编辑:程序博客网 时间:2024/05/20 07:49
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在堆上分配空间之后,获得该空间的地址并存储在指针,实际上此时指针是指针数组,为了获得该指针数组的地址,只需要取数组名即可。