有关动态数组,二级指针的问题
我老是敲入值,输出的却是个三角形一样的形式感觉是一位数组的缘故
程序代码:
/*(1)利用指向指针的二级指针变量对N个字符串按字典顺序排序并输出。(用二维字符数组保存N个字符串)*/ #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 3 void main() { int i,j,k; char **pp; char *p=new char[N]; char *temp=(char*)malloc(sizeof(char)*20);//动态内存分配 for(i=0;i<N;i++) scanf("%s",p+i); pp=&p; for(i=0;i<N-1;i++)//采用设标签法排序 { j=i; for(k=i+1;k<N;k++) { if(strcmp((&p+k),(p+i))>0) j=k; if(j!=k) { strcpy(temp,(p+k)); strcpy((p+k),(p+i)); strcpy((p+i),temp); } } } for(i=0;i<N;i++) { printf("%s\n",*pp+i); } }
我不明白,为什么这样做似乎指针p不能指向单个元素
搞了几个小时还不懂,谁可以帮我,谢谢
[此贴子已经被作者于2015-12-29 17:41编辑过]