萌新求助,两数相乘求和的警告和错误问题
#include<stdio.h>int main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=a*b;
printf("%d*%d=%d",a,b,c);
return 0;
}
它出现了这样的问题:
___1.c: In function ‘main’:
___1.c:5: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’
___1.c:5: warning: format ‘%d’ expects type ‘int *’, but argument 3 has type ‘int’
___1.c:5: warning: ‘a’ is used uninitialized in this function
___1.c:5: warning: ‘b’ is used uninitialized in this function
运行时错误(SIGSEGV)
错误原因可能是:
非法的内存引用, 具体原因可能是:
1.数组越界使用;
2.指针的错误使用, 一般是对非用户区的地址空间进行读或者写操作;
3.越权操作文件指针, 程序中却未捕捉该类错误;
4.栈溢出, 一般是因为过多的递归调用或者过大的临时变量导致;5.程序使用的内存超过了题目设定的上限。
测试数据2 运行时错误(SIGSEGV)
测试数据3 运行时错误(SIGSEGV)
这是怎么回事