2 sinat 30083847 sinat_30083847 于 2015.07.24 14:35 提问

c语言 指针数组与scanf

#include
#include

void get(char p[])
{
for (int i = 0; i < 3; i++)
scanf_s("%s",p+i,10);
}
void exchange(char *p[])
{
char *temp;
for (int i = 0; i < 2; i++)
for (int j = i + 1; j < 3; j++)
{
if ((strcmp(p[i], p[j]))>0)
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
void put(char *p[])
{
for (int i = 0; i < 3; i++)
{
printf("%s",
(p + i));
printf("\n");
}
}
int main()
{
void get(char *p[]);
void exchange(char *p[]);
void put(char *p[]);
char *p[3];
get(p);
printf("\n");
exchange(p);
put(p);
}

之后总是程序停止工作

5个回答

CSDNXIAON
CSDNXIAON   2015.07.24 14:39

c语言中的数组和指针
C语言指针数组
C语言 指针与数组
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

mixuema
mixuema   2015.07.24 22:33

get(char *p)

VisualEleven
VisualEleven   Ds   Rxr 2015.07.25 09:22

你的指针数组没有分配内存空间。

K346K346
K346K346   2015.07.25 10:57

代码写的好乱。首先函数的申明应该放在main函数外。前面都已申明定义,可以不用再次申明。其次为指针数组p中每一个指针变量p[0],p[1],p[2]赋值时,你没有给它申请空间。当然会报错。

u014306011
u014306011   2015.07.27 18:35

scanf_s("%s",p+i,10);
改为:
scanf("%s",p+i,10);

Csdn user default icon
上传中...
上传图片
插入图片