程序出现弹框错误 请高手帮忙看一下哪出错了 非常感谢:)在线等

来源:百度知道 编辑:UC知道 时间:2024/06/16 14:09:32
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void sortname(char **pname,char *name[],int size)
{
char *temp;
int i,j,k,r;
pname=name;
pname = (char **)malloc(size * sizeof(char *));
for (i=0;i<size;i++)
name [i]=(char*)malloc(20 * sizeof(char));
for (r=0;r<size-1;r++)
for (j=r+1;j<size;j++)
{
k=r;
if (strcmp(name[k],name[j])>0)
k=j;
if (k!=r)
{
temp=name[r];
name[r]=name[k];
name[k]=temp;
}
}
for (i=0;i<size;i++)
printf ("%s\n",name[i]);
}
void main()
{
char **pp,*p[3];
pp=p;
printf ("please input three names:\n");
for (int i=0;i<3;i++)
scanf ("%s",p[i]);
sortname (pp,p,3);
}

p[i]你只是申明了,还没给它分配空间。现在指向的是未知区域,不弹框才怪!
void main()
{
char **pp,*p[3];
pp=p;
for(int m=0;m<3;m++) p[m]=(char *)malloc(sizeof(char)*20000);
printf ("please input three names:\n");
for (int i=0;i<3;i++)
scanf ("%s",p[i]);
sortname (pp,p,3);
}