A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

2黑马币
//// 定义一个函数 ,可以用来 两个数的和同时,并计算是两个数的差;
//#include<stdio.h>
//int sumAndCha(int a,int b, int *cha);
//int main(){
//    int  *cha;
//    int sum=sumAndCha(12,14,cha);
//    printf("sum=%d,cha=%d\n",sum, *cha);
//    return 0;
//}
//
//int sumAndCha(int a,int b, int *cha){
//    int sum =0;
//    sum=a+b;
//    *cha= a-b;
//    return sum;
//}
//以上的代码是正确的。
为什么下面的就会出错?
#include<stdio.h>
int sumAndCha(int a,int b, int *cha,int *mul);
int main(){
    int *mul;
    int  *cha;
    int sum=sumAndCha(12,14,cha,mul);
    printf("sum=%d,cha=%d\n,mul=%d",sum, *cha,*mul);
    return 0;
}

int sumAndCha(int a,int b, int *cha,int *mul){


    int sum =0;
    sum=a+b;
    *mul=a*b;
    *cha= a-b;
    return sum;
}

最佳答案

查看完整内容

以后在用的时候,尽量不要用“不知所指”的地址,这样报错是很正常的。编译器会怎么去设置,这个我们无法确定。

2 个回复

正序浏览
定义了两个野指针。没让指针指向变量。
回复 使用道具 举报
  1. #include<stdio.h>
  2. int sumAndCha(int a,int b, int *cha,int *mul);
  3. int main(){
  4.     int a; // 指针必须明确找到他的对应地址
  5.     int b;// 指针必须明确找到他的对应地址  
  6.     int *mul=&a;
  7.     int  *cha=&b;
  8.     int sum=sumAndCha(12,14,cha,mul);
  9.     printf("sum=%d,cha=%d\n,mul=%d",sum, *cha,*mul);
  10.     return 0;
  11. }

  12. int sumAndCha(int a,int b, int *cha,int *mul){
  13.     int sum =0;
  14.     sum=a+b;
  15.     *mul=a*b;
  16.     *cha= a-b;
  17.     return sum;
  18. }
复制代码


以后在用的时候,尽量不要用“不知所指”的地址,这样报错是很正常的。编译器会怎么去设置,这个我们无法确定。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马