有关动态数组,二级指针的问题
我老是敲入值,输出的却是个三角形一样的形式感觉是一位数组的缘故
程序代码:/*(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编辑过]

