| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 405 人关注过本帖
标题:[求助]为什么内存错误?
只看楼主 加入收藏
asdffdsa
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-5-25
收藏
 问题点数:0 回复次数:2 
[求助]为什么内存错误?

void Deltree(BTNode *b)
{
if(b!=NULL)
{
Deltree(b->lchild);
Deltree(b->rchild);
free(b);
}
}//Recreate函数调用,用于删除原来的树
void Recreate(BTNode *&b)
{
char judge;
std::cout<<"将会删除原先二叉树,删除吗?(y/n)"<<endl;
std::cin>>judge;
if('Y'==toupper(judge))
{
Deltree(b);
std::cout<<"删除完毕"<<endl;
}
else
{
std::cout<<"错误,退出"<<endl;
return;
}

std::cout<<"请输入二叉树用括号表示法,以@结束。例:\"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))@\"";
std::cout<<endl;
std::cout<<"请输入:";
int top=-1;
BTNode *e;
e=NULL;
BTNode *s[30];
int k;
BTNode *p;
string chs;

std::cin>>chs;

string::iterator iter;
iter=chs.begin();

char ch;

ch=*iter;

while(ch!='@') //就是从这里开始起有错误的
{
switch(ch)
{
case '(':
top++;s[top]=p;k=1;break;
case ')':
top--;break;
case ',':
k=2;break;
default:
p=new BTNode;
p->data=ch;p->lchild=p->rchild=NULL;
if(e==NULL) e=p;
else
{
if(k==1) s[top]->lchild=p;
else s[top]->rchild=p;

}
}
iter++;
ch=*iter;
}
b=e;
}

[此贴子已经被作者于2006-6-7 14:48:09编辑过]

搜索更多相关主题的帖子: 内存 
2006-06-07 14:47
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

请说明白内存错误的现象是什么,还有如果代码不多的话尽可能贴出来


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-06-07 16:41
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
这个问题我在数据结构那里回答过,想不到又在这里发贴,以下下详细解释:
http://www.bc-cn.net/bbs/dispbbs.asp?boardID=179&ID=70375&page=1

c++/C + 汇编 = 天下无敌
2006-06-08 13:34
快速回复:[求助]为什么内存错误?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018071 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved