找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 740|回复: 2

非法操作的问题何在?

[复制链接]
发表于 2009-11-3 03:33:50 | 显示全部楼层 |阅读模式 IP:江苏扬州
#include<iostream.h>
struct node
{
int music[10];
char name[10];
int i;
node *next;
};
class LinkList
{
public:
LinkList()
{
first=NULL;
n=0;
}
void Insert(int pos,const &x);
void Setup();
void Display();
int length()
{
return n;
}
node* SetPos(int pos);
protected:
node *first;
int n;
};
node* LinkList::SetPos(int pos)
{
node *q=first;
for(int i=0;i<pos;i++)
q=q->next;
return q;
}
void LinkList::Setup()
{
node *q,*p;
node m1={{1,2,3,4,5},"小蜜蜂",1};
q=new node;
q=&m1;
q->next=first;
first=q;
node m2={{5,4,3,2,1},"遇见",2};
p=new node;
p=&m2;
p->next=q->next;
q->next=p;
n+=2;
}

void LinkList::Display()
{
node *m=first->next;
cout<<"歌曲库显示\n";
for(int a=1;a<=n;a++)
{
cout<<a<<'.'<<m->name<<endl;
m=m->next;
}
}
void main()
{
LinkList nick;
nick.Setup();
nick.Display();
}

提示非法..请指教.....
发表于 2009-11-3 03:33:51 | 显示全部楼层 IP:江苏扬州
void LinkList::Setup()
{
node *q,*p;
node m1={{1,2,3,4,5},"小蜜蜂",1};//局部数据
q=new node;
q=&m1;//申请完空间没有用
q->next=first;
first=q;
node m2={{5,4,3,2,1},"遇见",2};
p=new node;
p=&m2;//类似
p->next=q->next;
q->next=p;
n+=2;
}
void LinkList::Display()
{
node *m=first->next;//f->next为空
cout<<"歌曲库显示\n";
for(int a=1;a<=n;a++)
{
cout<<a<<'.'<<m->name<<endl;
m=m->next;
}
}
回复

使用道具 举报

发表于 2009-11-3 03:33:53 | 显示全部楼层 IP:江苏扬州
song4 说的对。
我先前还没看到,好失败
这里

node m1={{1,2,3,4,5},"小蜜蜂",1};
q=new node;
q=&m1;
q->next=first;
first=q;


m1的地址复值给q,然后又把这个局部变量的地址给first这是错误的,函数结束后,这个栈中的数据都会被销毁,那些曾经存放过的东西都不存在,你可以这样改下:
void LinkList::Setup()
{
node *q,*p;
node m1={{1,2,3,4,5},"小蜜蜂",1,NULL};
q=new node;
strcpy(q->name,m1.name);
q->next=m1.next;
q->next=first;
first=q;
node m2={{5,4,3,2,1},"遇见",2,NULL};
p=new node;
strcpy(p->name,m2.name);
p->next=m2.next;
p->next=q->next;
q->next=p;
n+=2;
}
这样只是复值,而不是取地址,这样就不会出现上述错误
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 13:28 , Processed in 0.175716 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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