黑马程序员技术交流社区

标题: 帮我看看代码哪里错了,晚上脑子糊了 [打印本页]

作者: jx836202365    时间: 2015-9-6 23:31
标题: 帮我看看代码哪里错了,晚上脑子糊了
本帖最后由 jx836202365 于 2015-9-6 23:33 编辑

大家帮我看看代码,我脑子糊涂了.不想浪费时间,大家帮我看看,旁观者清啊
#include<stdio.h>


void caculate(int a,int b,int *jia,int *jian,int *cheng,float *chu){
   
    *jia=a+b;
    *jian=a-b;
    *cheng=a*b;
    *chu=(float)a/b;
   
   
}


int main(){
   
    int a=34,b=2;
    int *jia;
    int *jian;
    int *cheng;
   
    float *chu;
   
    caculate(a,b,jia,jian,cheng,chu);
   
    printf("%d\n",*jia);
   
    return 0;
}


作者: a124113798    时间: 2015-9-6 23:40
定义了一堆空指针。。。
作者: smilejoke    时间: 2015-9-6 23:43
int *jia;野指针吧。。。。你直接定义int jia;就好了 传值传入&jia
作者: 七爷上课前    时间: 2015-9-6 23:52
int a,int b,int *jia,int *jian,int *cheng,float *chu,把*都去掉就行
作者: 指间的太阳    时间: 2015-9-6 23:57
int *jia这些既不是赋值,也不是比较,肯定报错啊
作者: 灬王一鹏    时间: 2015-9-7 00:02
定义的不对啊 兄弟
作者: 同舟ing    时间: 2015-9-7 00:03
兄弟这么多指针,看着都通疼死了!
作者: 楠楠    时间: 2015-9-7 00:04
一堆空指针。。。
作者: 刘登飞    时间: 2015-9-7 00:04
都是大神,表示看花眼了
作者: heimatai6    时间: 2015-9-7 00:04
表示看不懂
作者: silencea    时间: 2015-9-7 00:05
定义出问题了啊
作者: 弄啥嘞。    时间: 2015-9-7 00:05
一堆指针都没用,就编译出来了……
作者: xiaoxiang_631    时间: 2015-9-7 00:05
我有这心 但是真心看不懂.哥们 见谅.
作者: 残影    时间: 2015-9-7 00:14
下次记得报错也要贴出来啊。。。
作者: hoohoo    时间: 2015-9-7 00:20
好像是野指针!
作者: 0902赵建新    时间: 2015-9-7 00:21
感觉是指针的问题吧,但是技术没那么高,解决不了。
作者: bustle    时间: 2015-9-7 00:39
指针太多,眼花。我理解的是野指针。
调用函数的时候干嘛不直接传地址,&jia,&jian,&cheng,&chu.
作者: ZZBY    时间: 2015-9-7 00:58
看不懂,求中奖而来
作者: coding_wang    时间: 2015-9-7 01:14
smilejoke 发表于 2015-9-6 23:43
int *jia;野指针吧。。。。你直接定义int jia;就好了 传值传入&jia

大神正解~!
作者: coding_wang    时间: 2015-9-7 01:20
本帖最后由 coding_wang 于 2015-9-7 01:24 编辑


如图所示~~~
你定义的指针都是空指针  那么它指向的地址是无人区~~~你让后面的a+b,a-b什么的怎么住进去~~~
有数值  但是没有分配存储空间~~~  回答完毕~~~至于怎么改~~smilejoke 是正解~!

作者: Joker_999    时间: 2015-9-7 08:41
定义以后最好初始化一下,不然就成野指针了,可以赋值NULL
作者: jianjiao    时间: 2015-9-7 09:39
表示学习了
作者: 唐肖虎    时间: 2015-9-7 16:41
  1. #include<stdio.h>


  2. void caculate(int a,int b,int *jia,int *jian,int *cheng,float *chu){
  3.    
  4.     *jia=a+b;
  5.     *jian=a-b;
  6.     *cheng=a*b;
  7.     *chu=(float)a/b;
  8.    
  9.    
  10. }


  11. int main(){
  12.    
  13.     int a=34;
  14.     int b=2;
  15.     int jia;
  16.     int jian;
  17.     int cheng;
  18.    
  19.     float chu;
  20.    
  21.     caculate(34,2,&jia,&jian,&cheng,&chu);
  22.    
  23.     printf("%d\n",jia);
  24.    
  25.     return 0;
复制代码

作者: aidan    时间: 2015-9-7 17:33
本帖最后由 aidan 于 2015-9-7 17:39 编辑

再定义4个变量 4个指针分别指向那4个变量
然后就没问题了
或者学他们大神的。。哈哈





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2