问题描述
- c语言 指针数组与scanf
- #include
#includevoid get(char p[])
{
for (int i = 0; i < 3; i++)
scanf_s(""%s""p+i10);
}
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(""
"");
}
}
int main()
{
void get(char *p[]);
void exchange(char *p[]);
void put(char *p[]);
char *p[3];
get(p);
printf(""
"");
exchange(p);
put(p);
}之后总是程序停止工作
解决方案
解决方案二:
get(char *p)
解决方案三:
你的指针数组没有分配内存空间。
解决方案四:
代码写的好乱。首先函数的申明应该放在main函数外。前面都已申明定义,可以不用再次申明。其次为指针数组p中每一个指针变量p[0]p[1]p[2]赋值时,你没有给它申请空间。当然会报错。
解决方案五:
scanf_s(""%s""p+i10);
改为:
scanf(""%s""p+i10);
时间: 2024-11-05 04:49:42