鱼C论坛

 找回密码
 立即注册
查看: 2220|回复: 2

为什么会这样,求大神指点,是我编译器问题吗

[复制链接]
发表于 2019-9-24 11:15:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<stdlib.h>

typedef struct erch
{
   char c;
   int rflat;
   int lflat;
    struct erch *zou,*you;
}*A,*AA,**AAA;
int creation(AAA x)
{
     char b;
     scanf("%c",&b);
     if(b==' ')
    {
    *x=NULL;
    }
    else
    {printf("标志1");
      *x=(AA)malloc(sizeof(A));
      (*x)->c=b;
(*x)->rflat=0;//为什么这里会出错
(*x)->lflat=0;//不明白,为什么没有这两句程序就能正常退出。
      creation(&(*x)->zou);
      creation(&(*x)->you);
     }   
}
int main()
{
AA fp;
creation(&fp);
printf("标志");

return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-24 13:42:59 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. typedef struct erch
  4. {
  5.    char c                    ;
  6.    int rflat                 ;
  7.    int lflat                 ;
  8.    struct erch * zou , * you ;
  9. } A                          ;

  10. void creation(A ** x)
  11. {
  12.          char b                                ;
  13.          * x = NULL                            ;
  14.          scanf("%c" , & b)                     ;
  15.          if(b != ' ') {
  16.                  printf("标志1\n")             ;
  17.                  * x = (A *) malloc(sizeof(A)) ;
  18.                  (* x) -> c = b                ;
  19.                  (* x) -> rflat = 0            ;
  20.                  (* x) -> lflat = 0            ;
  21.                  (* x) -> zou = NULL           ;
  22.                  (* x) -> you = NULL           ;
  23.          }
  24. }

  25. int main(void)
  26. {
  27.         A * fp                                             ;
  28.         creation(& fp)                                     ;
  29.         if(fp) {
  30.                 printf("标志\n")                           ;
  31.                 printf("fp -> c     = %c\n" , fp -> c)     ;
  32.                 printf("fp -> rflat = %d\n" , fp -> rflat) ;
  33.                 printf("fp -> lflat = %d\n" , fp -> lflat) ;
  34.         }
  35. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-24 14:50:27 | 显示全部楼层

谢谢大哥,虽然不是我想要的答案,但很感谢你,,,,,,问题原来出现在typedef那里的*A应改为A。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表