BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #44022同步于 2010/9/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

家谱问题中一个奇怪的问题( C )

hero06
2010/9/17镜像同步7 回复
下面是家谱程序的一段,程序中printf("\n\n\t请输入添加人员性别女G男B:\n\t"); scanf("%1s",&NewNode1->Kind); 改成 if(CurrNode1->Kind == 'B' || CurrNode->Kind == 'b' ) NewNode1->Kind='G' ; else NewNode1->Kind='B'; 就不能工作。刚看数据结构,望大家帮帮看看,(我不是一遇到问题就问,我是调试了很久,实在没有办法才这样的) 。。。。。。。。 case 'B': case 'b': TreeNode * NewNode1; TreeNode * CurrNode1; CurrNode1=(TreeNode *)malloc(sizeof(TreeNode)); CurrNode1 = NULL ; printf("\n\n\t请输入那个人的名字:\n\t"); scanf("%s",name); CurrNode1 = SearchTree(Tree,name,20); 。。。 NewNode1=(TreeNode *)malloc(sizeof(TreeNode)); printf("\n\n\t请输入添加人员姓名:\n\t"); scanf("%s",NewNode1->Name); // printf("\n\n\t请输入添加人员性别女G男B:\n\t"); scanf("%1s",&NewNode1->Kind); //上面2行代码改成下面if语句就错,不知道什么原因 // if(CurrNode1->Kind == 'B' || CurrNode->Kind == 'b' ) // NewNode1->Kind='G' ; // else // NewNode1->Kind='B' ; // NewNode1->Parent=CurrNode1; CurrNode1->NextNode[0]=NewNode1; //free( CurrNode1 ) ; 必须注释 // free( NewNode1 ) ; 必须注释 break; case 'C': case 'c': ...。。。。。 其中,TreeNode定义如下, typedef struct TreeNode { int Num; //记录这个人拥有几个儿女 char Name[20]; //记录这个人的姓名 char Kind; //标示节点的种类有女G男B struct TreeNode * NextNode[20]; //记录这个人的儿女 struct TreeNode * Parent; //记录这个节点的父节点 }TreeNode;
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
tomcat114机器人#1 · 2010/9/17
什么错?
tomcat114机器人#2 · 2010/9/17
CurrNode是哪里来的?
hero06机器人#3 · 2010/9/17
CurrNode1吧?是在上面定义的 【 在 tomcat114 的大作中提到: 】 : CurrNode是哪里来的? : --
tomcat114机器人#4 · 2010/9/17
【 在 hero06 的大作中提到: 】 : CurrNode1吧?是在上面定义的 : 【 在 tomcat114 的大作中提到: 】 : : CurrNode是哪里来的? : ................... // if(CurrNode1->Kind == 'B' || CurrNode->Kind == 'b' ) // NewNode1->Kind='G' ; // else // NewNode1->Kind='B' ; 我说的是CurrNode不是CurrNode1 你程序里出现了这个CurrNode……
potatossss机器人#5 · 2010/9/17
那個kind,不要用scanf %s 輸入吧,你scanf %s寫別的內存了
hero06机器人#6 · 2010/9/17
【 在 tomcat114 的大作中提到: 】 : : CurrNode1吧?是在上面定义的 : : 【 在 tomcat114 的大作中提到: 】 : : : CurrNode是哪里来的? : ................... 谢谢,哎,太粗心了,以后抬不起头了 这几天被家谱折腾死了,现在感觉程序中内存泄露严重。。。之前没有注意alloc的使用
FadeToBlack机器人#7 · 2010/9/17
家谱问题……我完全是被标题勾引进来的 【 在 hero06 (飞哥) 的大作中提到: 】 : 下面是家谱程序的一段,程序中printf("\n\n\t请输入添加人员性别女G男B:\n\t"); : scanf("%1s",&NewNode1->Kind); : 改成 : ...................