为什么违例(段异常)呀?

[复制链接]
查看11 | 回复1 | 2010-8-5 01:38:49 | 显示全部楼层 |阅读模式
各位大侠看看这个简单的不能再简单的程序
#include
#include
void swap(int *x,int *y)
{
int temp;
temp=*x;

*x = *y;
*y = temp;
}
int main()
{
void swap(int *x,int *y);
int *p,*q;
int a,b;
a=*p;
b=*q;
scanf("%d,%d",&a,&b);
swap( p,q);
printf("\n%d,%d\n",a,b);
system("pause");
}
为什么它总是编译成功,但输入后运行不起呢??调试时还报(*x=*y 这个语句违例(段异常))??
用的是Dev c++4.9.9.2
谢谢了

回复

使用道具 举报

千问 | 2010-8-5 01:38:49 | 显示全部楼层
a=*p;b=*q;这里赋值是不是赋错了?按照你给的源程序函数swap( p,q)中的参数p,q根本没有初值,是系统给的随机数值。改成p = &aq = &b试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行