首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

//编程中第一次遇到这样的有关问题,关于函数参数和输入

2012-05-03 
//编程中第一次遇到这样的问题,关于函数参数和输入当调用函数void menu(int* n){printf(菜单:)printf(

//编程中第一次遇到这样的问题,关于函数参数和输入
当调用函数
void menu(int* n)
{
  printf("菜单:");
  printf("1.hua");
  printf("2.niao");
  printf("3.tuichu");

  printf("请输入您选择的序号:");
  scanf("%d",n);
}

  用gcc编译能通过,但是运行出错为段错误,用gdb调试在第9行(也就是scanf行)报错,提示为:
Program terminated with signal SIGSEGV,Segmentation fault.
0x00a1ab2f in_IO_vfscang_internal () from /lib/libc.so.6
再往下运行,则系统显示:
Program terminated with signal SIGSEGV,Segmentation fault.
The program no longer exists.

  这是为什么?怎么办?

[解决办法]
main里面将指针赋值为0

menu里面用scanf,等于往0这个地址写入数据,肯定段错误啊。

可以这样改一下
void main()
{
int i;
menu(&i);
}
[解决办法]

探讨
int* n = new int; 这句话是什么意思?

热点排行